该篇是概念性的东西,为简略版,如果问更加底层的点,还是要看详细内容,详细版见
https://blog.csdn.net/qq_33774822/article/category/8575479
概念介绍
Redis是远程服务器的缩写,是目前最火热的非关系型数据库。单线程,默认端口6379
主要优点:
1.key-value存储结构
2.持久化
3.可以设置过期时间
平时项目使用Jedis连接,或使用redisTemplate。
数据结构
数据结构有五种,分别是:
1.字符串(String):底层是SDS
2.字符串(List):底层是双向链表
3.集合(Set):键是唯一的,可以用于共同喜好和二度好友
sunion set1 set2
sinter set1 set2
sdiff set1 set2
4.有序集合(ZSet):底层是跳跃表
5.哈希(Hash):底层是字典结构,重新散列,渐进式散列
持久化
分为两种:
1.RDB:数据完整的生成一个快照,以二进制的格式保存在硬盘上,后缀为.rdb。
2.AOF:所有数据更新语句都记录在日志上。(AOF重写)
复制
旧版:同步,主节点更新状态给从节点,全部打包,效率低
新版:同步,完整重同步,部分重同步
取决条件是运行ID+复制偏移量+复制积压缓冲区
哨兵(sentinel)
投票选举leader,和选举主节点
数据淘汰机制
已设置过期时间的数据集挑选最少使用的淘汰
已设置过期时间的数据集挑选将要过期的淘汰
已设置过期时间的数据集任意选择数据淘汰
事务管理
multi:开启事务
exec:执行事务
discard:取消事务
watch:监视某个键值对,他的作用是值被修改,就取消。为了让其拥有CAS特性,也就是多个客户端操作一个数据库,redis保证数据不脏,避免脏数据。
不支持回滚,速度快。