redis深入了解(一)

redis的常见问题:
1.redis是内存版数据库,如果内存满了怎么办?

方案一.. redis集群
1)一定程度可以解决内存不够用的情况

2)但是随着网站用户不断增多,用户所产生的数据将会愈来愈多,
3)服务器越多,并不代表性能越高
方案二。内存淘汰策略----最近不使用的数据从内存淘汰
redis.conf 配置内存淘汰策略
1)maxmemory 0 //表示淘汰所有内存
2)maxmenory-poliy allkeys-lru//有限移除最近不使用的key


2.redis是否是线程安全的数据库
 redis 是 线程安全
  Redis是一个开源,先进的 key-value 存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案,是 线程安全 的。
  Redis三个主要特点:
       Redis是一个单线程数据库(单通道)
  Redis数据库完全在内存中,使用磁盘仅用于持久性。
  相比许多键值 数据存储 ,Redis拥有一套较为丰富的数据类型。
  Redis可以将数据复制到任意数量的从服务器。
3.redis的hash槽,你是怎么理解的?(redis如何存储的)
redis共有16384个hash槽,时固定的不能改变,无论集群节点多少。
hash槽将会动态的分配给每个服务器

hash槽存满了怎么办?
注意:hash槽不是用来存储数据的,时用来计算该把数据存储在哪个服务器里。相当于仓库的门,


4.redis缓存穿透,缓存击穿,缓存雪崩?

设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。

缓存穿透

缓存穿透是指查询一个在缓存和数据库中不存在的数据,
问题:这个数据库访问量瞬间增大,数据库可能发生io阻塞,雪崩。
解决:如果发现数据库没有数据,放一个空字符,并且设置过期时间

解决方案

有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。另外也有一个更为简单粗暴的方法(我们采用的就是这种),如果一个查询返回的数据为空(不管是数 据不存在,还是系统故障),我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。

缓存击穿

缓存中有个key过期了,恰好此时这个key面临一个高并发查询,此时缓存中没有数据,并发压力瞬间被转移到数据库,造成数据库雪崩。

解决方案

redis缓存之前加锁进行控制,当第一次访问没有值,查询数据库放入

缓存雪崩

缓存中很多key同时过期,恰好此时这些key面临高并发查询,发现缓存中数据消失,这些并发压力将会瞬间转移给数据库,数据库面临非常高的并发压力,发送雪崩。

解决方案

让缓存的key不同时过期,让redis过期时间5分钟时间+随机数时间 过期

Redis种开源的高性能键值存储系统,它支持丰富的数据结构,包括字符串、哈希、列表、集合和有序集合。在使用Redis时,我们可能会遇到些问题,下面是些常见的Redis问题及其解答。 1. Redis支持哪些数据结构? - Redis主要支持五种数据结构:字符串、哈希、列表、集合和有序集合。每种数据结构都有对应的操作命令,可以灵活地进行数据的存储和操作。 2. Redis如何保证数据的持久化? - Redis提供了两种方式来保证数据的持久化:RDB持久化和AOF持久化。RDB持久化是将数据以快照的方式保存到磁盘,AOF持久化是将写命令追加到文件末尾。可以根据需求选择适合的持久化方式。 3. Redis的主从复制是什么? - 主从复制是指将Redis服务器的数据复制到多个从服务器上,以实现数据的备份和读写分离等功能。主服务器将写操作同步到从服务器,从服务器只负责读操作,提高系统的并发性能和可靠性。 4. Redis如何解决并发访问的问题? - Redis采用单线程的方式处理客户端请求,通过使用非阻塞I/O和多路复用技术,实现高并发的处理能力。同时,Redis内部使用队列和锁等机制来保证并发访问的安全性。 5. Redis的数据存储位置在哪里? - Redis的数据存储在内存中,这也是其高性能的主要原因之。同时,Redis也提供RDB和AOF两种持久化机制,将数据保存到磁盘上,以防止数据丢失。 总之,掌握Redis的基本使用和原理,并了解些常见问题的解决方法,可以更好地使用Redis来构建高性能和可靠的应用系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿邱先森

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

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

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

打赏作者

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

抵扣说明:

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

余额充值