《Redis高阶应用》讲座总结

匿名 (未验证) 提交于 2019-12-03 00:43:02
  • 数据结构延展
    • 常用数据结构:String,Hash,List,Set,Sorted Set(不聊这些)
    • 高级数据结构:Bitmaps,hyperloglog,GEO
  • 单机拓展到分布式
    • 为什么要分区:性能瓶颈、资源瓶颈、横向扩展
    • 分区方案
      • 客户端自定义hash计算Redis的地址
      • 一致性hash环
      • 槽(sharding)
  • 分布式管理
    • redis主从
     
    • redis哨兵
     
    • redis集群
    创建集群: ./redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385  添加节点: ./redis-trib.rb add-node 127.0.0.1:7001 127.0.0.1:6380 ./redis-trib.rb reshard 127.0.0.1:7001   删除节点: ./redis-trib.rb reshard 127.0.0.1: 6383 ./redis-trib.rb del-node  127.0.0.1: 6383 node_id  切换为从节点: redis-cli -c -p 7001 cluster replicate node_id 
  • 高并发项目中的缓存策略
    • 缓存淘汰
      • noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。
      • allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。
      • allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。
      • volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。
      • volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。
      • volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。
    • 缓存粒度控制
      • 全部数据
      • 部分数据
    • 防止缓存雪崩
      • 缓存空对象
      • 布隆过滤器
    • 热数据更新
      • 使用消息队列进行异步数据更新
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!