Redis
文章平均质量分 80
未来谁可知
这个作者很懒,什么都没留下…
展开
-
记一次业务开发涉及到的千万数据查询优化
记一次业务开发涉及到的查询优化前言老王:最近业务挺多的啊!小李:对啊,最近这不是要上线了嘛!,业务就开始多了起来!老王:最近有写到好玩的业务嘛!小李:都是增删改查,哪有好玩的!老王:最近不是要你实现查询全服玩家的战力并且每个人都有一份对应战力区间的挑战列表吗?我感觉还挺有意思的,说一下怎么写的呗小李:哈哈哈我也没用什么好思路,就是异步多线程扫表,下面我讲一下具体实现的吧!需求全服玩家的战力并且每个人都有一份对应战力区间的挑战列表,不用实时更新,但需保存当时的玩家状态,每两天重置一遍列表!原创 2022-04-27 11:29:35 · 274 阅读 · 0 评论 -
八分钟掌握GO实现LRU的核心思想
GO实现Redis的LRU例子常见的三种缓存淘汰算法有三种:FIFO,LRU和LFU实现LRU缓存淘汰算法1.FIFO/LFU/LRU 算法简介缓存全部存在内存中,内存是有限的,因此不可能无限制的添加数据,假定我们能够最大使用的内存为Max,那么在一个时间点之后,添加了某一条缓存记录之后,占用内存超过了N,这个时候就需要从缓存中移除一些数据,那么该移除或者淘汰谁呢?我们肯定希望去移除没用的数据,将热点数据留在缓存中,下面几种就是对应的几种策略!FIFO (First in First Out原创 2021-08-18 11:00:05 · 771 阅读 · 0 评论 -
Redis之字典底层数据结构
Redis之字典底层数据结构table 属性是一个数组, 数组中的每个元素都是一个指向 dict.h/dictEntry 结构的指针, 每个 dictEntry 结构保存着一个键值对。size 属性记录了哈希表的大小, 也即是 table 数组的大小, 而 used 属性则记录了哈希表目前已有节点(键值对)的数量。sizemask 属性的值总是等于 size - 1 , 这个属性和哈希值一起决定一个键应该被放到 table 数组的哪个索引上面。key 属性保存着键值对中的键, 而 v 属性则保存着原创 2020-08-15 10:52:43 · 232 阅读 · 0 评论 -
布隆过滤器
布隆过滤器它是一种数据结构,目的就是为了告诉你一个东西可能存在还是一定不存在相比于其它得5大类型数据结构,它优点是占用空间小利用得是bitMap,按位存储,然后时间上用得hash算法也是O(1)缺点:hash算法老问题了,hash碰撞无可避免,有一定得容错率,所以只能告诉你可能存在和一定不存在,至于为什么,后面接着看布隆过滤器数据结构每一个位置对应一位标识符,我们只需要对数据进行hash出位置进行标识即可例如,baidu.hashcode()%(table.length-1)如果是出原创 2020-07-25 12:34:01 · 266 阅读 · 0 评论 -
Redis的Set链表数据结构
Redis的Set链表数据结构链表节点 -> 设计字段typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value;} listNode;但是你以为set就这样组成吗,那简直大错特错了!typedef struct list { // 表头节点 listNode原创 2020-07-07 14:09:26 · 258 阅读 · 0 评论 -
redis的字符串底层结构
redis的字符串底层结构struct sdshdr { // 记录 buf 数组中已使用字节的数量 // 等于 SDS 所保存字符串的长度 int len; // 记录 buf 数组中未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[];};遵循空字符结尾这一惯例的好处是, SDS 可以直接重用一部分 C 字符串函数库里面的函数。C保存的原因我认为是判断字符串长度的一个临界值那么它与c字符串原创 2020-07-06 20:34:54 · 278 阅读 · 0 评论 -
Redis进阶之面试不再没话讲
Redis进阶之面试不再没话讲1.Redis.conf他里面明确标注了,对大小写不敏感还可以像脚手架一样,包含其它,引入conf//下面我就以文本显示,不截图了protected-mode yes #跨域保护port 6379 //端口配置daemonize yes #默认是no不以后台运行pidfile /var/run/redis_6379.pid #如果以后台运行我们需要指定一个pid文件,以后报错就是要有一个这个文件logfile "" //日志文件的名字原创 2020-05-25 11:03:07 · 198 阅读 · 0 评论 -
Reids入门到SpringBoot整合入门
1.NoSql的特点方便扩展,数据之间没有关系型数据库的三大范式存取数据很块,因为redis是直接加载在内存,没有和磁盘交互数据类型也很多,而且不用事先设计大数据时代:高并发,高可扩,高性能2.Redis(远程字典服务) 结构化数据库它能干嘛内存存储,持久化,内存断电即失,所以需要持久化(adb,rof)效率高,缓存地图信息分析消息队列计时器,浏览量 …Windows和linux下都可以安装,官网可以下载,它的安装一点也不难,新手不要怕基本环境安装原创 2020-05-24 18:02:54 · 226 阅读 · 0 评论