Redis之第二部分

                                          Redis

String类型操作

String是Redis的基本数据类型,可以包含任何数据,包括jpg图片或者序列化的对象。单个value值最大上限是1G字节。

List类型操作

List类型是一个双向链表,通过push、pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。

Set集合类型

Redis的Set是string类型的无序集合。Set最多可以包含个元素。Set有删除和添加操作,还有集合的并集、交集、差集,set集合的元素不能重复。(好友推荐功能)

Sort Set排序集合类型

Sort Set也是string类型元素的集合,不同的是每个元素都会关联一个权,通过权值可以有序的获取集合中的元素。

Sort Set适用场合

获得热门帖子信息(回复量):

  1. SQL语句实现,但比较耗费数据库资源:select * from message order by backnum desc limit 5;
  2. Zrevrank key member

持久化功能

Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存中。

RDB快照持久化(Snap shotting)

该持久化默认开启,在指定的时间间隔内,执行指定次数的写操作,一次性把Redis中的全部数据保存一份存储在硬盘,如果数据非常多就不适合频繁持久化该操作。

数据修改的频率非常高,备份的频率也高;

数据修改的频率低,备份的频率也低;

Save 900 1        #900秒内如果超过一个key被修改,则发起快照保存

Save 300 10       #300秒内如果超过10key被修改,则发起快照保存

Save 60 10000     #60秒内如果超过10000key被修改,则发起快照保存

缺点:
1 数据的完整性和一致性不高,因为RDB可能在最后一次备份时宕机了。
2 备份时占用内存,因为Redis 在备份时会独立创建一个子进程,将数据写入到一个临时文件(此时内存中的数据是原来的两倍哦),最后再将临时文件替换之前的备份文件。
所以Redis 的持久化和数据的恢复要选择在空闲时执行

AOF持久化(Append only file)

AOF持久化需要手动开启,将Redis执行的每次写命令记录到单独的日志文件中(有点像MySQL的binlog);当Redis重启时再次执行AOF文件中的命令来恢复数据。与RDB相比,AOF的实时性更好(因此已成为主流的持久化方案。)

AOF重写机制(针对 AOF文件大的问题,提供重写的瘦身机制。)

AOF的工作原理是将写操作追加到文件中,文件的冗余内容会越来越多。所以Redis 新增了重写机制。当AOF文件的大小超过所设定的阈值时,就会对AOF文件的内容压缩。

重写的原理Redis 会创建(fork)出一条新进程,读取内存中的数据,并重新写到一个临时文件中。(并没有读取旧文件)最后替换旧的aof文件。

触发机制:当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发。这里的“一倍”和“64M” 可以通过配置文件修改。

AOF 的优缺点

优点:数据的完整性和一致性更高
缺点:因为AOF记录的内容多,文件会越来越大,数据恢复也会越来越慢。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值