1 NoSQL数据库简介
1.1 技术发展
解决分布式服务器架构中存在的session问题,
2 Redis概述和安装
2.1 应用场景
- 配合关系型数据库做高速缓存
- 高频次热门数据
- 分布式架构,session共享
- 多样数据结构存储持久化数据
2.2 Redis安装
3 常用5大数据结构
3.1 String
3.2 List
ziplist是列表元素较少的情况下使用一块连续的内存存储,所有元素紧挨存储。避免过多双向指针消耗存储空间。quickList元素较多时,将多个ziplist用双向指针串起来。3.3 Set
- 定义:
string类型的无序集合,底层是所有值为null的哈希表。3.4 Hash
![W~ML]04Z1P9FI~USEU@B)6.png
3.5 Zset
有序的没有重复元素的字符串集合。
每个成员有一个评分(score)。
它等价于Map数据结构。 3.5.1 跳跃表
略4 配置文件
5. 订阅和发布
6 Redis6新数据类型
6.1 Bitmaps

对于稠密的图,使用bitmap比set节约空间。6.2 HyperLogLog
基数问题:计算不重复个数
在固定空间里,尽可能多的维护不重复的值,不存储真实值。6.3 Geospatial
地理7 Jedis操作Redis6
8 Redis6和spring boot整合
9 Redis6的事务操作
9.1 事务定义
事务: 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。隔离操作9.2 事务使用
- 组队阶段(语法错误,在exec时所有队列中命令会错误)
执行阶段(执行错误,在exec时,执行错误命令失败,其他正常命令不受影响)
9.3 事务冲突
9.3.1 悲观锁
9.3.2 乐观锁
对数据加上版本号,修改值后更改版本号。每次修改前查看数据版本号与数据库中数据版本号是否一致。
watch:模拟乐观锁,当事务执行前数据被改变了,那么事务则不会得到执行。
