redis 总结

1、redis 支持的数据类型

类型结构
string常用
hashkey value 型的对象
list

压缩列表(类似数组)

双向链表

set

hash表

整数数组

zset

压缩列表

调表

2、存储隐患

 现象解决方式
缓存雪崩大量缓存同一时间失效设置一定时间内的随机值
缓存击穿某一热点缓存失效

1、使用分布式锁

2、热点数据用不过期

缓存穿透缓存和数据库中无此数据

1、设置空值,并设置简单的过期时间

2、布隆过滤器 存储所有可以访问的key

 

3、redis 值久化策略

 方式优缺点
RDB缓存快照1、宕机会发生数据丢失 2、恢复数据快
AOF记录所有写入命令反之

4、分布式

方式模式缺点
setnx

操作数据前先创建锁

 

在缓存失效之间内未做完数据修改

redisson.getlock

在缓存时间time内,会有一个 每1/3 time 执行定时线程去更新该缓存的存储时间

 

集群情况下, master 未能同步到 salver ,master 节点挂了,导致数据不一致问题
redisson.redlock新增 zookeeper 一样的,同步半数以上的机器才会返回成功性能逐步下降

5、淘汰策略

  
volatile-lru在设置过期时间内最近最少使用
volatile-ttl在设置过期时间内即将过期
volatile-random在设置过期时间内随机
allkeys-lru从数据集中挑选最近最少使用的数据淘汰
allkeys-random从数据集中任意选择数据淘汰
no-enviction永不删除

6、查询速度

1、基于内存查询

2、单线程操作较少内核态和用户态的切换,同时节省无效线程的轮询

3、nio 多路复用 

epoll 主要实现是底层语言  epoll_create 创建epoll 实例       epoll_ctl  注册事件     epoll_wait  监听事件发生

7、主备数据同步

1、master 会启动一个备份进程同步数据,备份进程调用 rdbsave()将数据保存到rdb 文件中。

2、redis 有一个定时/任务 serverCron,检测备份是否完成, 同时更新备份状态: 成功失败、备份时间。

      如果成功则将数据发送给slave(slave 创建socket 与master 连同,然后master 发送rdb 文件到slave)。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值