redis list放入对象_技术分享|就业:分布式缓存之--Redis

首先我们使用一个新的技术,我们不能为了用而用,我们要知道为什么用?

1、为什么要使用缓存?

高性能:

一个用户A发起请求,通过ServiceA请求数据库来获取数据,但是数据库的性能相比Redis的速度要慢很多,响应时间比较长,这时又有一个用户B发起一个请求,和用户A要的是同一个数据,那么正常情况下我们又要去查询一遍数据库,然后再返回给用户,那么我们想一想,如果有很多用户都要去查询这一条数据,都去数据库查,响应都很慢,那么就降低了用户体验。

加入Redis缓存后,我们将用户A查询都数据放到Redis缓存中,那么接下来到用户再去查询这条数据到时候直接先查Redis缓存中是否存在这条数据,那么我们直接就返回给用户就可以了,不需要再去查数据库了,Redis响应速度极快这样就提高了用户体验感。

高并发:

mysql数据库对高并发支撑并不是很高,加入Redis后,Redis是基于内存对,内存对读写速度很快,redis使用是多路复用技术,可以处理并发连接,redis是单线程的,可以省去很多上下文切换的时间;

206badcb6cfdbf26864611828331fa46.png

2、Redis的线程模型是什么?

d1a57cbd86f6ddd74322572397d825c7.png

当客户端1请求连接redis进程的时候,会在redis进程内部建立一个server socket 并注册一个事件,redis进程中的io多路复用程序会将这个它压入队列中,然后交给文件事件分派器,分派器会交给连接应答处理器,当客户端要进行set key value操作的时候,同样会产生一个socket 注册一个命令请求事件,由io多路复用程序压入队列,文件事件分派器会交给处理器进程内存中key和value的设置。

3、Redis的数据结构及其作用

String:普通的get和set,简单的kv缓存
hash: 类似有map的一种结构,这个一般就是存储对象
list:list格式放入缓存中
set:无序集合,自动去重
sorted set: 去重可以排序

5、Redis的过期策略有哪些?内存淘汰机制有哪些?

过期策略:定期删除+惰性删除

定期删除:是指Redis会每隔100ms会随机抽取一些设置了过期时间的key进行扫描,看是否已经过期,如果已经到达过期时间就进行删除

惰性删除:是指因为Redis的定期删除是进行随机抽取的一些设置了过期时间的key进行删除,难免会漏掉一些已经过期但是没有被定期删除扫描到的key,那么这些key在你去获取它的value的时候,redis就会发现这个key已经过期了,就不会给你返回任何结果,并将这个key给删除。

淘汰机制:

noeviction:当内存不足以容纳新写入数据时,新写入操作会报错,这个一般没人用吧
   allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key(这个是最常用的)
   allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key,这个一般没人用吧
   volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key(这个一般不太合适)
   volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key
volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。

本篇技术文章,题主推荐黑马程序员的视频教程【Redis入门到精通】感兴趣可以看下~

Redis入门到精通​yun.itheima.com
3715beb97e4bf6d5676e64d719133a17.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值