伴随着Apple Watch的发布,苹果向用户推送了iOS 8.2,遗憾的是新系统并未赢得太多好评:删不了的Apple Watch应用、耗电严重、wifi连接不稳定等,引得果粉纷纷吐槽。微媒体第一时间体验更是发现,升级iOS 8.2后,不少App的返回键都出现失灵情况,其中微信表现尤为明显。
今日,微信正式发布iOS 6.1.2,新特性包含:可以通过附件栏发微信红包;更换手机时,自定义表情也不会丢失;允许用户直接搜索朋友圈、附近餐馆等内容;新增蓝牙设备连接支持,并在公众号中查看相关数据,同时,修复了一些已知问题。
随即,微媒体更新微信后发现,新版微信的返回键已经修复,终于不用再重启微信了。
原文:http://kunshan.dajiake.com/article/index.php?id=187
-
微信更新iOS 6.1.2:返回键失灵bug已修复
2015-03-29 13:02:00微媒体第一时间体验更是发现,升级iOS 8.2后,不少App的返回键都出现失灵情况,其中微信表现尤为明显。今日,微信正式发布iOS 6.1.2,新特性包含:可以通过附件栏发微信红包;更换手机时,自定义表情也不会丢失...转载于:https://www.cnblogs.com/kunshandajiake/p/4375545.html
-
Apple Watch 关闭显示正在听的音乐
2018-04-06 08:54:42这时候还得按下表冠按键在能返回 , 比较麻烦 ; 这个可以通过如下几个步骤关闭 (Watch OS 4.3) : 我的手表 -> 通用 -> 唤醒屏幕 , 去掉 自动启用音频应用 这一项 , 设置完就不会再自动显示正在听的...佩戴 Apple Watch 的同学或许会经常遇到这种情况 , 在手机听歌的时候 , 想看下时间 , 抬腕后手表却显示正在听的音乐 , 如下图 :
这时候还得按下表冠按键在能返回 , 比较麻烦 ;
这个可以通过如下几个步骤关闭 (Watch OS 4.3) :
我的手表
->通用
->唤醒屏幕
, 去掉自动启用音频应用
这一项 , 设置完就不会再自动显示正在听的音乐了 ;作者 Github : tojohnonly , 博客 : EnskDeCode
-
Redis(设计与实现):---事务之WATCH命令(watched_keys字典、touchWatchKey函数、REDIS_DIRTY_CAS标识)
2020-11-09 16:10:06功能: 它可以在EXEC命令执行之前,监视任意数量的数据库键,并在EXEC命令执行时,检查被监视的键是否至少有一个已经被修改过了,如果是的话,服务器将拒绝执行事务,并向客户端返回代表事务执行失败的空回复 ...一、WATCH命令介绍
- WATCH命令是一个乐观锁(optimistic locking)
- 功能: 它可以在EXEC命令执行之前,监视任意数量的数据库键,并在EXEC命令执行时,检查被监视的键是否至少有一个已经被修改过了,如果是的话,服务器将拒绝执行事务,并向客户端返回代表事务执行失败的空回复
演示案例
- 以下是一个事务执行失败的例子:
在时间T4,客户端B修改了"name"键的值,当客户端A在T5执行EXEC命令时,服务器会发现WATCH监视的键"name"已经被修改,因此服务器拒绝执行客户端A的事务,并向客户端A返回空回复
二、使用WATCH命令监视数据库键(watched_keys字典)
每个Redis数据库都保存着一个watched_keys字典:
- 字典的键是某个被WATCH命令 监视的数据库键
- 字典的值则是一个链表,链表中记录了所有监视相应数据库键的客户端
typedef struct redisDb { // ... //正在被WATCH 命令监视的键 dict *watched_keys; // ... } redisDb;
- 通过watched_key s字典,服务器可以清楚地知道哪些数据库键正在被监视,以及哪些客户端正在监视这些数据库键
下图是一个watched_keys字典的示例,从这个watched_keys字典中可以看出:
- 客户端c1和c2正在监视键"name"
- 客户端c3正在监视键"age"
- 客户端c2和c4正在监视键"address"
通过执行WATCH命令,客户端可以在watched_keys字典中与被监视的键进行关联。举个例子,如果当前客户端为c10086,那么客户端执行以下WATCH命令之后:
上图展示的watched_keys字典将被更新至下图所示的状态,其中用虚线包围的两个c10086节点就是由刚刚执行的WATCH命令添加到字典中的三、监视机制的触发(touchWatchKey函数、REDIS_DIRTY_CAS标识)
所有对数据库进行修改的命令,比如SET、LPUSH、SADD、ZREM、DEL、FLUSHDB等等,在执行之后都会调用multi.c/touchWatchKey函数对watched_keys字典进行检查,查看是否有客户端正在监视刚刚被命令修改过的数据库键,如果有的话,那么touchWatchKey函数会将监视被修改键的客户端的REDIS_DIRTY_CAS标识打开,表示该客户端的事务安全性已经被破坏
- touchWatchKey函数的定义可以用以下伪代码来描述:
def touchWatchKey(db, key): # 如果键key 存在于数据库的watched_keys 字典中 # 那么说明至少有一个客户端在监视这个key if key in db.watched_keys: # 遍历所有监视键key 的客户端 for client in db.watched_keys[key]: # 打开标识 client.flags |= REDIS_DIRTY_CAS
举个例子,对于下图所示的watched_keys字典来说:
- 如果键"name"被修改,那么c1、c2、c10086三个客户端的REDIS_DIRTY_CAS标识将被 打开
- 如果键"age"被修改,那么c3和c10086两个客户端的REDIS_DIRTY_CAS标识将被打开
- 如果键"address"被修改,那么c2和c4两个客户端的REDIS_DIRTY_CAS标识将被打开
四、判断事务是否安全
当服务器接收到一个客户端发来的EXEC命令时,服务器会根据这个客户端是否打开了REDIS_DIRTY_CAS标识来决定是否执行事务:
- 如果客户端的REDIS_DIRTY_CAS标识已经被打开,那么说明客户端所监视的键当中,至少有一个键已经被修改过了,在这种情况下,客户端提交的事务已经不再安全,所以服务 器会拒绝执行客户端提交的事务
- 如果客户端的REDIS_DIRTY_CAS标识没有被打开,那么说明客户端监视的所有键都没有被修改过(或者客户端没有监视任何键),事务仍然是安全的,服务器将执行客户端提交的这个事务
这个判断是否执行事务的过程可以下面的流程图来描述
-
Redis(设计与实现):67---事务之WATCH命令(watched_keys字典、touchWatchKey函数、REDIS_DIRTY_CAS标识)
2019-12-10 11:26:45功能:它可以在EXEC命令执行之前,监视任意数量的数据库键,并在EXEC命令执行时,检查被监视的键是否至少有一个已经被修改过了,如果是的话,服务器将拒绝执行事务,并向客户端返回代表事务执行失败的空回复 ...一、WATCH命令介绍
- WATCH命令是一个乐观锁(optimistic locking)
- 功能:它可以在EXEC命令执行之前,监视任意数量的数据库键,并在EXEC命令执行时,检查被监视的键是否至少有一个已经被修改过了,如果是的话,服务器将拒绝执行事务,并向客户端返回代表事务执行失败的空回复
演示案例
- 以下是一个事务执行失败的例子:
- 在时间T4,客户端B修改了"name"键的值,当客户端A在T5执行EXEC命令时,服务器会发现WATCH监视的键"name"已经被修改,因此服务器拒绝执行客户端A的事务,并向客户端A返回空回复
二、使用WATCH命令监视数据库键(watched_keys字典)
- 每个Redis数据库都保存着一个watched_keys字典:
- 字典的键是某个被WATCH命令 监视的数据库键
- 字典的值则是一个链表,链表中记录了所有监视相应数据库键的客户端
typedef struct redisDb { // ... //正在被WATCH 命令监视的键 dict *watched_keys; // ... } redisDb;
- 通过watched_key s字典,服务器可以清楚地知道哪些数据库键正在被监视,以及哪些客户端正在监视这些数据库键
- 下图是一个watched_keys字典的示例,从这个watched_keys字典中可以看出:
- 客户端c1和c2正在监视键"name"
- 客户端c3正在监视键"age"
- 客户端c2和c4正在监视键"address"
- 通过执行WATCH命令,客户端可以在watched_keys字典中与被监视的键进行关联。举个例子,如果当前客户端为c10086,那么客户端执行以下WATCH命令之后:
- 上图展示的watched_keys字典将被更新至下图所示的状态,其中用虚线包围的两个c10086节点就是由刚刚执行的WATCH命令添加到字典中的
三、监视机制的触发(touchWatchKey函数、REDIS_DIRTY_CAS标识)
- 所有对数据库进行修改的命令,比如SET、LPUSH、SADD、ZREM、DEL、FLUSHDB等等,在执行之后都会调用multi.c/touchWatchKey函数对watched_keys字典进行检查,查看是否有客户端正在监视刚刚被命令修改过的数据库键,如果有的话,那么touchWatchKey函数会将监视被修改键的客户端的REDIS_DIRTY_CAS标识打开,表示该客户端的事务安全性已经被破坏
- touchWatchKey函数的定义可以用以下伪代码来描述:
def touchWatchKey(db, key): # 如果键key 存在于数据库的watched_keys 字典中 # 那么说明至少有一个客户端在监视这个key if key in db.watched_keys: # 遍历所有监视键key 的客户端 for client in db.watched_keys[key]: # 打开标识 client.flags |= REDIS_DIRTY_CAS
- 举个例子,对于下图所示的watched_keys字典来说:
- 如果键"name"被修改,那么c1、c2、c10086三个客户端的REDIS_DIRTY_CAS标识将被 打开
- 如果键"age"被修改,那么c3和c10086两个客户端的REDIS_DIRTY_CAS标识将被打开
- 如果键"address"被修改,那么c2和c4两个客户端的REDIS_DIRTY_CAS标识将被打开
四、判断事务是否安全
- 当服务器接收到一个客户端发来的EXEC命令时,服务器会根据这个客户端是否打开了REDIS_DIRTY_CAS标识来决定是否执行事务:
- 如果客户端的REDIS_DIRTY_CAS标识已经被打开,那么说明客户端所监视的键当中, 至少有一个键已经被修改过了,在这种情况下,客户端提交的事务已经不再安全,所以服务 器会拒绝执行客户端提交的事务
- 如果客户端的REDIS_DIRTY_CAS标识没有被打开,那么说明客户端监视的所有键都没有被修改过(或者客户端没有监视任何键),事务仍然是安全的,服务器将执行客户端提交 的这个事务
- 这个判断是否执行事务的过程可以下面的流程图来描述
-
事务失败返回_一文明白:Redis事务
2021-01-13 07:29:44Redis事务事务提供了一种"将多个命令打包,一次性提交并按顺序执行"的机制,提交后在事务执行中不会中断。只有在执行完所有命令后才会继续执行来自其他客户的消息。... watch:事务开始之前监视任意数量的键>... -
Redis事务
2019-06-25 16:43:00MULTI:开始事务 EXEC:提交事务 DISCARD:放弃事务 ... 如果有至少一个被监视的键在EXEC执行之前被修改了, 那么整个事务都会被取消,EXEC返回nil-reply来表示事务已经失败。 当EXEC被调用时, 不管事务... -
redis中使用 check-and-set 操作实现乐观锁
2017-03-28 16:36:00如果有至少一个被监视的键在EXEC执行之前被修改了, 那么整个事务都会被取消,EXEC返回空多条批量回复(null multi-bulk reply)来表示事务已经失败。 举个例子, 假设我们需要原子性地为某个值进行增1操作(假设.... -
Java中使用redis的事务
2019-05-21 13:57:24在redis中使用事务,通常的使用watch…multi…exec命令组合。 redis执行事务过程: ...exec执行事务,在执行前判断watch监控的redis键的数据是否发生了变化(即使赋予之前相同的值也会被认为是变化... -
用Redis做分布式锁
2018-12-04 19:59:49生成一个128位的UUID,然后给锁的这个键赋值,如果赋值成功(返回1),就获取了锁;如果赋值失败(返回0),就相当于没有获取锁。客户端自己控制重试或者放弃。 释放锁的过程 释放锁就是移除锁键。但是如果在没有... -
前端开发技术难点汇总(四)
2020-01-21 15:30:511.禁止物理返回键 history.pushState(null,null,document.URL); window.addEventListener('popstate',mo,{passiive:false}) // mo 执行的操作 window.removeEventListener('popstate',mo,{passiive:false}) 2.watch... -
redis杂记
2020-03-21 20:20:20介绍下redis的事务 redis的事务可以分为三步 1、任务开始 ...watch命令是一个乐观锁,可以监视任意数量的数据库键,并且在exec命令执行时,被监视的键有过修改,服务器将拒绝执行事务。返回空回复。 慢查... -
整合spring cloud云架构 --spring cloud分布式系统中实现分布式锁
2019-03-19 09:08:20一、简介 一般来说,对数据进行加锁时,程序先...使用 watch命令对于频繁访问的键会引起性能的问题。 二、redis命令介绍 SETNX命令(SET if Not eXists) 当且仅当 key 不存在,将 key 的值设为 value ,并返回1... -
如何在springcloud分布式系统中实现分布式锁?
2019-01-14 17:16:00一、简介 一般来说,对数据进行加锁时,程序先...使用 watch命令对于频繁访问的键会引起性能的问题。二、redis命令介绍 SETNX命令(SET if Not eXists) 当且仅当 key 不存在,将 key 的值设为 value ,并返回1;... -
superdesk-client-core:superdesk应用程序的通用客户端模块-源码
2021-02-12 16:52:37npm run e2e-compile或npm run e2e-compile-watch watch-将测试从TypeScript编译为JavaScript。 npm run protractor -启动浏览器并运行测试。 贡献 在考虑向Superdesk客户捐款之前,请确保阅读我们的。 构建配置 ... -
Redi中Lua脚本拓展
2020-10-30 16:08:40当在某些情况下,操作某个键时,需要该键在事务过程中没有被修改才执行成功时,通过watch命令来实现,如果事务过程中有对键值的修改,那么事务不会执行,下面是两个客户端下事务演示 redis中实现的事务功能相对... -
分布式缓存redis之事务
2018-05-01 20:51:31在redis中也同样拥有事务的概念redis事务的使用redis中与事务相关的命令有5个,分别是:MULTI EXEC DISCARD WATCH UNWATCH1)MULTI命令用于开启事务开启事务后,可以开始对键执行操作,能看到开启事务后命令的返回都... -
for ... in 存在的浏览器兼容问题你造吗
2021-01-10 01:53:46watch~</strong>)您的关注是楼主继续写作的动力 <h1>for ... in 今天要跟大家聊聊 for ... in 在浏览器中的兼容问题。 <p>for ... in 大家应该都不陌生,循环只遍历可枚举属性。像 Array 和 Object ... -
12道vue高频原理面试题,你能答出几道?
2020-12-26 11:47:58<p>Proxy 可以劫持整个对象,并返回一个新的对象。Proxy 不仅可以代理对象,还可以代理数组。还可以代理动态增加的属性。 <h2>5. Vue 中的 key 到底有什么用? <p>key 是给每一个 vnode 的唯一 id,依靠 key,... -
正则表达式
2014-12-03 14:51:39正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它... -
谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar
2013-06-13 22:35:211.13.10 Break/watch 菜单 1.13.11 Turbo C 2.0 的配置文件 2 程序的灵魂—算法 2.1 算法的概念 21 2.2 简单算法举例 21 2.3 算法的特性 24 2.4 怎样表示一个算法 24 2.4.1 用自然语言表示算法 24 2.4.2 用流程图... -
uboott移植实验手册及技术文档
2010-01-28 19:18:03实验三 移植U-Boot-1.3.1 实验 【实验目的】 了解 U-Boot-1.3.1 的代码结构,掌握其移植方法。 【实验环境】 1、Ubuntu 7.0.4发行版 2、u-boot-1.3.1 3、FS2410平台 4、交叉编译器 arm-softfloat-linux-gnu-... -
c语言编写单片机技巧
2009-04-19 12:15:171. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言...
-
远程连接数据库失败解决方法
-
全球编程大赛作品,拍摄月亮 3.98K.rar
-
从0开始 独立完成企业级Java电商网站开发(服务端)--笔记1 架构演进
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
伊顿穆勒.rar电气设备选型资料大全 (适合刚刚入行的电气工程师对设备进行选型规划)详解 报价
-
【Mac】mac使用
-
vue-demo2.zip
-
【福尔摩斯探案集】数据库和应用程序时间出现14小时时差之迷
-
Vue.js中$router和$route的区别
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
php实现上传图片保存到数据库的方法
-
基于51单片机的洗衣机控制器设计.rar
-
用微服务spring cloud架构打造物联网云平台
-
(2021年2月18日整理)自媒体全套教程+全套工具(带操作教程)+原创实操教程+N个素材网站+赠全套副业实操课程
-
linux c i2c总线 通信 源代码
-
libFuzzer视频教程
-
最近在写毕业论文
-
西门子 电气设备选型资料大全 (适合刚刚入行的电气工程师对设备进行选型规划)详解 报价
-
精通编译Makefile,Nina, 从底层uboot到Android
-
IT安全风险评估管理指南_V1.0.doc