
Redis
文章平均质量分 71
LangForOne
奔三的小全栈,现任某互联网科技公司研究院开发工程师,前端后端皆有探究,不断提高,無限進步。文章多数为分享在工作开发项目中遇到的问题和一些思路经验,以及可有可无的心得分享
展开
-
RedisTemplate中使用scan方法代替keys指令
demo写到这步已经可以用了,注意传参的String pattern是要带*号的,比如我想查user_info:1、user_info:2等等数据,则匹配user_info:前缀(redis的key最好用枚举类+定义常量),此时传参的pattern即为"Keys会引发Redis锁(数据过多一直查询处理),并且增加Redis的CPU占用。但此demo会有一个问题:没法移动cursor,也只能scan一次,并且容易导致redis链接报错。当需要扫描key,匹配出自己需要的key时,可以使用 scan 命令。原创 2023-11-30 21:59:16 · 2647 阅读 · 0 评论 -
redis的bitmap(面试题,待补充)
如果我们需要记录某一用户在一年中每天是否有登录我们的系统这一需求该如何完成呢?如果使用KV存储,每个用户需要记录365个,当用户量上亿时,这所需要的存储空间是惊人的。Redis 为我们提供了位图这一数据结构,每个用户每天的登录记录只占据一位,365天就是365位,仅仅需要46字节就可存储,极大地节约了存储空间。位图数据结构其实并不是一个全新的玩意,我们可以简单的认为就是个数组,只是里面的内容只能为0或1而已(二进制位数组)。一看就懂 详解redis的bitmap(面试加分项)原创 2023-10-28 09:20:12 · 269 阅读 · 0 评论 -
redis的key超时策略和key淘汰机制(面试题详解)
他会去遍历16个库,遍历每一个库,对这个库进行抽样,抽样之后,判断抽样出来的key,是否超过1/4的key是否处于过期状态,如果说,这些抽样出来的key里边的没有超过1/4的key过期,此时他先清理完抽样出来过期的数据之后,再去遍历下一个库。惰性删除不是去主动删除,而是在你要获取某个key 的时候,redis会先去检测一下这个key是否已经过期,如果没有过期则返回给你,如果已经过期了,则删除,返回null。在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作。原创 2023-10-23 20:36:16 · 1196 阅读 · 0 评论 -
Redis的持久化策略:RDB与AOF(面试题详解)
RDB和AOF持久化的由来?因为Redis中的数据是基于内存的,所以如果出现服务器断电或者服务器宕机,那么Redis中存放的数据就会直接丢失。RDB和AOF就是针对Redis提供的两种持久化机制,可以将Redis中的数据持久化到磁盘中。当Redis实例故障重启后,就可以根据备份的文件来进行数据的恢复RDB全称Redis Database Backup file,也被叫做Redis数据快照,简单来说就是把内存中所有的数据都记录在磁盘中,当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。原创 2023-10-23 20:04:18 · 509 阅读 · 0 评论 -
Redis的大key简介与问题与解决
redis 的大 key 不是指存储在 redis 中的某个 key 的大小超过一定的阈值,而是该 key 所对应的value 过大对于 string 类型来说,一般情况下超过 10KB 则认为是大 key;对于set、zset、hash 等类型来说,一般数据超过5000条即认为是大 key。转载 2023-10-23 18:48:35 · 1024 阅读 · 0 评论