redis-总结

Redis知识总结

看完《redis设计与实现》后,结合自己实际开发中的经验,做些知识点的总结:
-redis为什么快
内存操作
单线程,要么失败,要么成功

RDB:内存对象的快照,默认设置9000秒修改过一次,300s至少修改两次

时间至少执行redis命令次数
90001
30010
601000

RDB这种方式会造成短暂性的服务失联,因为dump对CPU和内存都要求较高
详见:https://blog.youkuaiyun.com/zhangyufeijiangxi/article/details/78863303

AOF:
aof_buffer同步到磁盘的频率:默认是1s钟一次,每隔1秒将新增命令同步至磁盘aof文件
aof重写:
默认aof文件大于1M,或增长的部分大小增长了1倍进行aof重写
详见:https://blog.youkuaiyun.com/zhangyufeijiangxi/article/details/78866038
-redis分布式锁
分四步:
第一步:setnx:成功则说明获取了锁,没有则说明被别人占用着或未被正确释放
第二步:get:获取过期时间,只有获取到时间并且时间过期了,才能认为获取到了这个锁
第三步:getSet:只有获取到旧的数据确实是刚刚查找的过期数据,才能确定没有被其他现场修改占用
第四步:delete业务处理完后,进行锁释放

  • redis使用场景
    A、session回话保存
    :(key,value,expireTime)普通String键值对即可
    B、FPC:全页缓存(FPC)如淘宝首页的数据,生产上如手机号限制10分钟内发送短信次数
    C、队列:
    正是因为list的底层实现的是双向列表,使得我们可以用lpush,rpush,lpop,rpop实现FIFO,或FILO双向队列
    4、发布/订阅
    适合小型数据量
    5、计数/排行榜
    利用有序集合对象实现

-redis分布式
主从模式:master-slave01-slave02
master挂掉,slave马上起,不要一对多,
哨兵模式:
一个哨兵配置监控一个master,会自动监控这个master的slave。当master挂了。从slave中选出一个当做master,修改剩余slave跟踪选择的那个slave, 也就是新的master
集群:内存分片,当一个master过小,需要将数据分成多个地方存储,这个时候可以建立分片,将数据hash到不同的slot上

-redis和memchaed的优势区别
1、redis支持多种对象,特别是list,hash,set,sortSet,可以支持多种业务

2、redis支持持久化,memecha不支持,了数据就丢失

3、redis还可以主从配置进行备份

4、redis支持单个对象的value达1G,memch只有1M

-redis数据回收策略
1、lru:设置了过期键集合,删除最近最少使用的键值对
2、ttl:设置了过期对象集合,删除将要过期的键值对
3、random:设置了过期的集合对象,随机删除
4、allkeys-lru:全部集合中,最近最少
5、allkeys-random:全部集合,随机
6、no-:禁止驱逐

-redis一些注意事项
1、master不要持久化,持久化让slave做
Master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化,如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。

2、尽量做AOF持久化,不用RDB,太耗内存了

3、master和slave最好在一个局域网内

-单线程为什么快
1、内存操作
2、单线程无CPU切换开销
3、多路I/O复用模型:epoll,先注册socket链接至selector,然后不断轮询selectkey,等相应后再去处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值