我所知道的Redis

还记得上家公司做操盘应用,因数据操作频繁,所以当时用了redis来做数据的缓存 。还有个做缓存的叫memcached,这个之前学php的时候用过,不过实际项目中并没有用到,相比redis的优势有:

  1. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  2. Redis支持数据的备份,即master-slave模式的数据备份。
  3. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

Redis 5中集中数据类型:

字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)

结构类型 存储的值 读写能力
String 字符串、整数、浮点数 对整个字符串或其中一部分执行操作;对整数和浮点数执行自增或自减操作
List 链表 从链表两端进行push、pull操作
Set 包含字符串的无序收集器,不重复 添加、获取、删除单个元素;检查元素是否存在于集合中;计算交集、并集、差集
Hash 包含键值对的无序列表 添加、获取、删除单个元素;获取所有键值对元素
Zset 字符串成员与浮点数分数之间的有序映射 添加、获取、删除单个元素;根据分值范围或成员来获取元素

Redis存储策略:

首先来了解一下redis缓存雪崩,因为数据未加载到缓存中,或者缓存同一时间大面积失效,从而导致所有请求去查数据库,导致数据库CPU和内存负载过高,甚至宕机。
存储策略分为Snapshot和AOF两种,这两种机制都是讲数据存储在内容中:

Snapshot:将数据先存储在内存中,当数据量累计达到设定的阀值时,会触发一次DUMP操作,将变化的数据一次性写入数据文件
AOF:将数据先存在内存中,存储的时候会调用fsync来完成本次操作的日志记录,AOF最关键的配置就是关于调用fsync追加日志文件的平率,有两种预设频率,always每次记录进来都添加,everysecond 每秒添加一次

当数据量大的时候,会用一下策略:

唯一标识作为key,存全部信息
其它查询信息作为key,只存唯一标识
监控变化,expire设置过起时间

Redis容灾策略:

  1. 采用主从方式(mater-slave)
  2. 为了读写性能,master不做任何持久化
  3. slave开启Snapshot和AOF来进行持久化,保证数据安全性
  4. master挂掉后,修改slav为master
  5. 恢复master后,将原先的master修改为slave,启动slave
  6. master和slave都挂掉了,调用命令通过AOF和Snapshot进行恢复
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,187评论 1 51
  • 转载地址:http://gnucto.blog.51cto.com/3391516/998509 Redis与Me...
    Ddaidai阅读 21,500评论 0 82
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,124评论 2 89
  • 上天的眷顾就是给了你一个真实的现实世界,也同时给了你一个童话般的梦幻世界。穿梭在其中,庄生晓梦应景而生,到底是现实...
    云儿恒暄阅读 3,025评论 0 1
  • 金秋的十月 我离开了你 我的故乡 在这日出东方的时刻 回头仍是满目的乡情 告别我的爱人 我的亲人 我孤身上...
    信步云天阅读 2,507评论 0 4