
redis企业级入门与面试解析
文章平均质量分 54
由于内卷原因,面试中不来一手redis,都难以相信,所以本专栏将带大家了解企业中如何使用redis。
小鲍侃java
CSDN博客专家,华为签约作者,全网粉丝10w,阅读量100w+。现任企业架构师,主要分享和讲解毕设,java入门与晋级架构师的技巧与知识。
展开
-
redis面试题(持续更新)
1.你们为啥用Redis?大量的数据请求可能造成数据库的宕机(如秒杀,热点数据,),redis是使用内存存贮,每秒的运行次数可以达到10w+,可以减少数据库的压力。2.Redis有哪些数据结构?String、Hash、List、Set、SortedSet。3.如果有大量的key需要设置同一时间过期,一般需要注意什么?要设置随机的过期时间,否则造成雪崩。4.Redis分布式锁怎么实现?使用set语法,加入jedis.set(lockKey, requestId, SET_IF_NOT_EXI原创 2021-11-20 17:29:03 · 1913 阅读 · 1 评论 -
redis和memcache区别
memcache:1.memcache吞吐量大。 2.只支持简单的key/value数据结构。 3.不能持久化。 4.多线程异步io 5.key小于50b value小于1m 过期时间小于30天redis:1.支持hash,string,list,set.丰富的数据结果 2.可以选择持久化。 3.不需要考虑数据一致性问题。 4.单线程 异步。 5.支持...原创 2020-01-13 20:59:13 · 449 阅读 · 0 评论 -
redis各数据类型使用场景
String:1 存储session token, 2 计数器 3 缓存功能hash:存储maplist:1 实现分页 2 微博下拉刷新 3 微博粉丝数 4 博客发布文章数 5 消息队列set:去重zset:带权重的set 有一个score记录权重,可以实现排行榜 热点数...原创 2020-01-03 21:32:49 · 504 阅读 · 0 评论 -
缓存雪崩,穿透和击穿
一 缓存雪崩:大量key同时失效,大量请求发送到db上,导致db宕机。解决办法:设置key过期时间时,使用随机数setRedis(Key,value,time + Math.random() * 10000);二 缓存穿透:大量请求请求一个缓存中没有的key,这些请求直接怼到db上,造成宕机。如发送为负数的入参时。(一般为黑客侵入)解决办法:1.加入入参的验证,防止非法入参。...原创 2019-12-28 20:55:42 · 440 阅读 · 2 评论 -
redis作计数器
插入@Override public void incr(@Param("id") String id) { ValueOperations<String, Long> operations = redisTemplate.opsForValue(); operations.increment(id, 1L); }获取@O...原创 2018-11-03 09:40:51 · 2399 阅读 · 1 评论 -
redis实现队列
Redis设计用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列。它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;Redis能做消息队列还得益于其list对象blpop brpop接口以及Pub/Sub(发布/订阅)的某些接口,它们都是...原创 2020-01-13 20:59:28 · 1498 阅读 · 0 评论 -
redis持久化分析
RDB:RDB做镜像全量持久化,将redis所有的数据以二进制保存,RDB会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据。他是隔一段时间开启子线程,持久化这段时间的数据。优点:1 使用二进制,文件比较小 2 灾难恢复时因为文件小恢复更快 3 重启更快 4 因为是fork一个子线程进行持久化,所有对效率影响很小。...原创 2021-02-01 10:13:20 · 2573 阅读 · 7 评论 -
redis获取key前缀为xxx的key的集合
@Autowired private RedisTemplate redisTemplate; String accessKey = "access" + "*"; Set<String> keys = redisTemplate.keys(accessKey);原创 2021-03-10 14:10:29 · 1916 阅读 · 7 评论 -
为什么Redis单线程却能支撑高并发
一.纯内存操作二.核心是基于非阻塞的 IO 多路复用机制三.单线程反而避免了多线程的频繁上下文切换问题个人理解 1:db操作需要操作磁盘 涉及到io所有效率肯定比内存效率低 2:个人理解就是,redis一次请求需要 连接应答处理器,命令请求处理器,命令回复处理,而这个io多路复制机制就是会同时监控多个请求,同时把每个请求标记上状态放入队列,然后在调用时直...原创 2019-11-15 10:58:01 · 698 阅读 · 1 评论