Redis的简单总结

1.Redis 数据结构有哪些?

string list set hash zset

2. 数据类型的作用

1.Redis的数据结构都是唯一的kv结构.
2.string是字符串结构
3.list是列表结构,插入和删除的操作时非常快的,但通过索引去定位某个数据就比较慢了.
4.hash哈希是数组+链表的二维结构.
5.set集合内部是键值对无序切唯一的,只允许value为null
6.zset有序列表一方面来说他也是一种set,保证了内部value的唯一性,同时又赋予每个value一个score代表着value的排序权重,当最后一个value被移除的时候,数据结构就会自动删除,内存被回收

3.分布式锁

本质上就是该进程还在正在进行,另一个进程就又想进入,但该进程还没有执行结束,另一个进程只能放弃或等待再试.

4.超时问题

Redis的分布式锁是不能解决超时问题的,如果出现加锁和释放锁之间的逻辑执行的时间太长就会出现,超时的现象,只能进行人工干预解决或不用较长间任务

5.可重入性

就是该线程在已经加锁的情况下再次请求加锁.

6.Redis持久化

有两种持久化机制,一种是快照,另一种是AOF日志
快照是一次全量备份,数据是二进制序列化方式存储,内存上非常紧凑,
AOF日志是连续的增量备份,是以内存数据修改的指令记录文本,超期以来会占用大量的内存

7.缓存问题

缓存穿透
key对应的value在数据库中不存在,每次针对key的请求从 缓存获取不到,请求都会到数据库,从而可能穿透数据库.
解决方案
1.如果查询一个返回值为空(不管数据是否存在,还是系统故障)都把查询到的结果进行缓存,但过期时间最长不超过五分钟;
2.用布隆过滤器,把可能存在数哈希存到一个bitmap中,从而会被bitmap拦截掉
缓存击穿
如果大量的并发去请求一个已经过期的key时,Redis会加载数据库的数据到缓存中,次是很可能会导致数据库被击垮
解决方案
使用互斥锁
缓存雪崩
当缓存服务器重启或者有大量的缓存集中在某一时刻失效,很可能会给数据库带来很大的访问压力
解决方案
1.在Redis和数据库之间加一个消息队列,保证了消息不同时访问数据发生的的问题;
2.给每个缓存加一个随机时间,这样也能避免同时大量访问引发的集体失效.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值