1.创建reidsConfig
1.定制RedisTemplate对象
1.Jt-template中添加如下依赖、web依赖中包含RedisTemplate对象
1.objectMaspper对象设置相应的属性
1.设置redisTemplate的序列化
1.自定义redstTemplate序列化之后的结果
(1)Java控制台输出的结果
(2)Reids控制面板输出的结果
1.测试testStringOper02方法、get(“blog”)方法返回LinkedHashMap类型的数据
1.TestStringOper02输出的结果如下
1.map类型的数据转化为json串、然后通过readValue()读取数据、进行输出
2.New Blog()时触发含参构造
3.Get(“blog”)时触发有参构造
1.输出结果如图所示
1.ObjectMapper.enableDefaultTyping()调用此方法、作用如下
(1)反序列化时、get(“blog”)的方式获取结果、返回是Blog对象
(1)redisTemplate.setKeySerizlizer、reidsTemplate.setValue…修改bean特性需要调用
afterPropertiesSet方法
1.PropertyAccessor.Getter、作用:通过所有get方法获取所有属性以及值
(1)如果blog这个实体类id属性、没有get方法则在RedisTemplateTest、get(“blog”)进行反序列化时、则获取不到id的值输出结果如下
(2)objectMapper.activateDefaultTyping()方法、如果RedisTplateTests类被final修饰则访问结果出错。
1.Vim reids.conf编辑reids.conf
- “save 900 1”表示如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb文件;
- “save 300 10”表示如果每300秒内至少10个key发生变化(新增、修改和删除),则重写rdb文件;
- “save 60 3600”表示如果每60秒内至少10000个key发生变化(新增、修改和删除),则重写rdb文件。
1.连接reids-server后清空reids中的所有数据
1.删除宿主机中的dump.rdb文件
1.reids中添加数据
(1)添加数据后生成dump.rdb文件
(1)SAVE 和 BGSAVE 两个命令都会调用 rdbSave 函数,但它们调用的方式各有不同:
①SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。
②BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Redis 服务器在BGSAVE 执行期间仍然可以继续处理客户端的请求。
1.清空缓存中的数据
1.以下是模拟断电的效果
1.断电效果数据为空
1.Vim reids.conf编辑reids.conf文件
1.Appendonly yes 开启Aof持久化方式
1.Appendfsync always写一次缓存、就会写一次磁盘
1.vim reids.conf编辑reids.conf文件
1.appendfsync always、每一次写缓存操作就会写入磁盘
1.重启reids01容器
1.Docker exec -it reids01 reids-cli连接reids-server
2.Set aa 100 设置 aa=100
1.查看data目录生成appebdonly.aof文件
1.Multi开启事务、
2.descrby tony 100 对tony中的变量减100的操作
3.Inscrby jack 对jack中的变量加100的操作
4.exec提交事务的操作
1.Mget tony jack查看修改后的数据
1.所有指令操作进入到队列
1.Abcd如果指令错误、事务不会提交
1.事务进行乐观锁的操作
(1)Get ticket获取变量的数据
(2)Ticket对该变量做减法操作
1.Jedis操作reids事务
1.运行jedis操作的事务方法、得出以下结果
1.运行jedis操作的事务方法、得出以下结果
2.如果出现事务和事务提交中有错、则事务不能提交
1.Cp -r reids01/reids02复制多个reids镜像、实现master/slaver主从架构
1.第一个reids镜像:Docker run -p 6379:6379实现端口的映射和宿主机和redis目录的挂载
2.第二个reids镜像:Docker run -p 6380:6379实现端口的映射和宿主机和redis目录的挂载
3.第三个reids镜像:Docker run -p 6381:6379实现端口的映射和宿主机和redis目录的挂载
1.查看reids 6379这个镜像是主master/还是从slave
1.Docker inspect redis6379查看这个reids的ip
1.Docker exec -it reids6380 reids-cli进入reids6380服务
2.slaveof 172.17.0.4 6379
3.6380设置为6379的master分支
4.Docker exec -it reids6381 reids-cli进入reids6381服务
5.slaveof 172.17.0.4 6379
6.6381设置为6379的master分支
1.Docker exec -it reids6380 打开从分支
2.Docker exec -it reids6380 接入从分支、只能读取数据、不能设置数据