文章分类 -  redis

摘要:字符串: hash类型: list类型: set类型: 有序集合: 阅读全文
posted @ 2018-07-09 16:54 丰study 阅读(89) 评论(0) 推荐(0)
摘要:问题描述: .2010年,facebook有了3000个memcache节点 .发现问题:“加”机器性能没能提升,反而下降 问题关键点: 。更多的机器!=更高的性能 。批量接口需求(mget,mset等) 。数据增长与水平扩展需求 优化I/0的几种方法: 1,命令本身优化:例如慢查询keys丶hgetall bigkey 2,减少网络... 阅读全文
posted @ 2018-06-24 20:48 丰study 阅读(645) 评论(0) 推荐(0)
摘要:缓存粒度控制-三个角度: 1,通用性:全量属性更好 2,占用空间:部分属性更好 3,代码维护:表面上全量属性更好 阅读全文
posted @ 2018-06-24 18:07 丰study 阅读(415) 评论(0) 推荐(0)
摘要:◆伸缩原理: 阅读全文
posted @ 2018-06-21 17:49 丰study 阅读(124) 评论(0) 推荐(0)
摘要:Rredis cluster特性 复制 高可用 分片 阅读全文
posted @ 2018-06-20 17:28 丰study 阅读(116) 评论(0) 推荐(0)
摘要:集合特点:1,无序的。2,无重复的。3,集合间的操作。 阅读全文
posted @ 2018-06-13 17:39 丰study 阅读(168) 评论(0) 推荐(0)
摘要:有序集合特点:有序集合时间复杂度普遍比集合偏高的 阅读全文
posted @ 2018-06-13 17:39 丰study 阅读(122) 评论(0) 推荐(0)
摘要:@rpush key value1 value2...valueN #从列表右端插入值(1-N个),时间复杂度O(1~n) @lpush key value1 value2...valueN #从列表左端插入值(1-N个),时间复杂度O(1~n) @linsert key before|after value newValue #在list指定的值前|后插入newValue,时间复杂度O(n... 阅读全文
posted @ 2018-06-13 17:38 丰study 阅读(135) 评论(0) 推荐(0)
摘要:@hget key field #获取hash key 对应的field的value,时间复杂度为O1 @hset key field value #设置hash key 对应field的value,时间复杂度为O1 @hdel key field #删除hash key对应field的value,时间复杂度为O1 @hexists key field #判断hash key是否有fie... 阅读全文
posted @ 2018-06-13 17:36 丰study 阅读(364) 评论(0) 推荐(0)
摘要:@set key value #给key设置值 @get key #获取key值 @getset key newvalue #set key newvalue并返回旧的value,时间复杂度是O1 @append key value #将value追加到旧的value,时间复杂度是O1 @strlen key #返回字符串的长度(注意中文),时间复杂度是O1 @incrbyfloat... 阅读全文
posted @ 2018-06-13 17:34 丰study 阅读(124) 评论(0) 推荐(0)
摘要:@keys 就是计算redis所有键 @dbsize 计算数据库的大小 @exists key 判断key是否存在 @del key[key...] 删除key,可以同时删除多个key @expire key seconds 给key设置有效时间 @type key 查看key的类型 @ttl key 查看key剩余的过期时间 @persist key 去掉key的过期时间 ... 阅读全文
posted @ 2018-06-13 17:30 丰study 阅读(102) 评论(0) 推荐(0)
摘要:领导者的选举 。原因:只有一个sentinel节点完成故障转移 。选举:通过sentinel is-master-down-by-addr命令都希望成为领导者 1,每个做主观下线的Sentinel节点向其他Sentinel节点发送命令,要求将它设置为领导者. 2,收到命令的Sentinel节点如果没有同意通过其他Sentinel节点发送命令,那么将同意该请求,否则拒绝 3... 阅读全文
posted @ 2018-06-13 17:20 丰study 阅读(1182) 评论(0) 推荐(0)
摘要:故障转移(sentinel领导者节点完成) 1,从slave节点中选出一个“合适的”节点作为新的master节点 2,对上面的slave节点执行slaveof no one 命令让其成为master节点. 3,向剩余的slave节点发出命令,让他们成为新master节点的slave节点,复制规则和parallel-syncs参数有关。 4,更新对原来master节点配置为slave,并保持... 阅读全文
posted @ 2018-06-13 17:19 丰study 阅读(341) 评论(0) 推荐(0)
摘要:常见开发问题 。节点运维 。高科可用的读写分离 节点下线: 。主节点 。从节点 。sentinel节点 节点下线的原因: 。机器下线:例如过保等情况 。机器性能不足:例如CPU丶内存丶硬盘丶网络等 。节点自身故障:例如服务不稳定等 sentinel failover 节点上线 。主节点 。sen... 阅读全文
posted @ 2018-06-13 17:18 丰study 阅读(293) 评论(0) 推荐(0)
摘要:sentinel monitor #客观下线的判断 之前我们的配置: sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds #主观下线的判断 之前我们的配置: sentinel down-after-milliseconds mymaster 30000 主观下线:... 阅读全文
posted @ 2018-06-13 17:17 丰study 阅读(1517) 评论(0) 推荐(0)
摘要:分布式数据库-数据分区 数据分区有两种: 1,顺序分区 2,哈希分区 哈希分布 。节点取余分区 1,实例图: 2,扩容问题: 3,注意事项: 。客户端分片:哈希+取余 。节点伸缩:数据节点关系变化,导致数据迁移 。迁移数据量和节点数据量有关->建议翻倍扩容 4,不建议使用这种分区方式,是真的不好 。 阅读全文
posted @ 2018-06-13 16:09 丰study 阅读(244) 评论(0) 推荐(0)
摘要:第一个定时 1,每10秒每个sentinel对master和slave执行info 。发现slave节点 。确认主从关系配图: 第二个定时2,每2秒每个sentinel通过master节点的channel交换信息(pub/sub)#channel是发布订阅的频道 。通过__sentinel__:hello频道交互 ... 阅读全文
posted @ 2018-06-13 11:53 丰study 阅读(572) 评论(0) 推荐(0)
摘要:sentinel 是为了发现redis故障且故障转移的原理 1,多个sentinel发现并确认master有问题。 2,选举出一个sentinel作为领导。 3,选出一个slave作为master。 4,通知其余slave成文新的master的slave 5,通知客户端主从变化 6,等待老的mast 阅读全文
posted @ 2018-06-13 11:04 丰study 阅读(265) 评论(0) 推荐(0)
摘要:_redis_ip = $ip; if($port != '') $this->_redis_port = $port; if($db != '') $this->_redis_db = $db; if($hash_prefix != '') $this->_hash_prefix = $hash_prefix; $this->_r... 阅读全文
posted @ 2018-02-28 16:22 丰study 阅读(461) 评论(1) 推荐(0)