Redis有哪些数据类型和Redis的持久化方式和区别

① string
② list
③ set
④ sorted set
⑤ hash
使用场景参考如下:
string,用作计数器,统计在线人数等等,可以存储二进制数据如使用它来存储图片等。
hash,存放键值对,一般可以用来存某个对象的基本属性信息,例如,用户信息,商品信息等
list,列表类型,可以用于实现消息队列,也可以使用它提供的range命令,做分页查询功能。
set,可以用作去重功能,例如用户名不能重复等,另外,还可以对集合进行交集,并集操作,来查找某些元素的共同点

 

Redis的持久化

由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。

redis提供两种方式进行持久化,

        一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),

       另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)

二者的区别

RDB持久化

优点:使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis 的高性能
缺点:RDB 是间隔一段时间进行持久化,如果持久化之间 redis 发生故障,会发生数据丢失。所以这种方式更适合 数据要求不严谨的时候

AOF持久化

优点:该机制可以带来更高的数据安全性,即数据持久性。Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。每秒同步也是异步完成的,其效率也是非常高的,所差的是一旦系统出现宕机现象,那么这一秒钟之内修改的数据将会丢失。而每修改同步,我们可以将其视为同步持久化,即每次发生的数据变化都会被立即记录到磁盘中

缺点:相比于AOF机制,如果数据集很大,RDB的启动效率会更高

二者选择的标准

就是看系统是愿意牺牲一些性能,换取安全性更高的缓存一致性(aof),

还是愿意牺牲安全性更高(会发生数据丢失), 保证了 redis 的高性能(rdb)。

 

 

 

 

 

 

 

 

 

posted @ 2021-01-06 14:56  My--style  阅读(56)  评论(0)    收藏  举报