栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis常用操作,缓存击穿,缓存雪崩,缓存穿透,序列化,以及整合springboot,五种数据的常见操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis常用操作,缓存击穿,缓存雪崩,缓存穿透,序列化,以及整合springboot,五种数据的常见操作


普通的项目开发仅仅只是将热点数据储存到缓存当中,提高访问速度,其他更加深奥的根本用不到

1.reids是键值对数据库,键的类型只能为字符串,值:字符串、列表、集合、散列表、有序集合

2.Redis 的数据是存在内存中的,所以读写速度非常快, 因此 redis 被广泛应用于缓存方向,数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等
数据结构

3.将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中 率
其他操作:
token生成、session共享、分布式锁、自增id、验证码、好友关注 、信息缓存,验证码等

缓存穿透问题:redis缓存和数据库中都没有数据,用户查询不到数据返回为空会一直进行查询。解决方案:查询为空后,将空值存进redis缓存中,并设置过期时间,不会占用内存,再次查询会只查到为空。

缓存雪崩问题:在同一时间大量的redis缓存key同时失效,使redis数据库宕机,导致查询压力全部集中在数据库上,带来巨大压力。解决方案:1.查询key设计随机TTL过期时间。2.利用redis主从提高服务可用性,要注意数据的一致性3.增加降级限流策略4.添加多级缓存

缓存击穿问题:因为设置了缓存过期时间,导致某一个热点数据失效,并且重新读入缓存非常麻烦,导致数据写入数据库压力过大。解决方案:1.设置互斥锁,在发现缓存失效后,获取锁,读取数据库并在重新写入缓存后释放锁,这段时间其他线程无法访问。2.逻辑过期。开启一个新线程,重新设置缓存过期时间


序列化

4.StringRedisTemplate继承了RedisTemplate,对key、value 、hashkey、hashvalue提供了不同的序列化策略
5.GenericToStringSerializer: 可以将任何对象泛化为字符串并序列化
6.Jackson2JsonRedisSerializer: 跟JacksonJsonRedisSerializer实际上是一样的
7.JacksonJsonRedisSerializer: 序列化object对象为json字符串
8.JdkSerializationRedisSerializer: 序列化java对象(被序列化的对象必须实现Serializable接口),无法转义成对象
9.StringRedisSerializer: 简单的字符串序列化
10.GenericToStringSerializer:类似StringRedisSerializer的字符串序列化
11.GenericJackson2JsonRedisSerializer:类似Jackson2JsonRedisSerializer,但使用时构造函数不用特定的类参考以上序列化,自定义序列化类;
12.key和hashKey:推荐使用 StringRedisSerializer: 简单的字符串序列化
13.value和hashValue:推荐使用GenericJackson2JsonRedisSerializer:类似Jackson2JsonRedisSerializer,但使用时构造函数不用特定的类
14.自定义序列化

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号