
redis
ywl470812087
个人简介:深耕物联网行业,ERP,优快云博客专家。 任职华为网联网智慧照明、空调资深工程师,并且上线投产使用,研发企业亿量级吞吐中间件。 擅长 Java语言、C语言等。
展开
-
redis-SkipList跳表数据结构
跳表原创 2023-01-04 20:55:56 · 78 阅读 · 0 评论 -
redis-QuickList数据结构
首尾节点不压缩,中间节点压缩节省内存空间。原创 2023-01-04 20:36:23 · 79 阅读 · 0 评论 -
redis-zipList原理
插入一个entry。原创 2023-01-04 19:01:40 · 76 阅读 · 0 评论 -
redis数据结构-SDS、IntSet、Dict 原理
对于动态字符串源码:原创 2023-01-04 17:06:28 · 84 阅读 · 0 评论 -
redis缓存淘汰策略-基于LinkedHashMap实现LRU算法
2.3如果容量(坑位)满了要删除最不长用的数据,每次新访问还要把新的数据插入到队头(按照业务你自己设定左右那一边是队头)LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,2.1必须要有顺序之分,一区分最近使用的和很久没有使用的数据排序。必须要有读+写两个操作,按照命中率的思路考虑,写操作+读操作时间复杂度都需要为O(1)当添加第四个数据进来,这时候就会将1挤出去,淘汰1。如果一次就可以找到,你觉得什么数挑结构最合适?选择最近最久未使用的数据予以淘汰。原创 2023-01-02 18:03:29 · 836 阅读 · 0 评论 -
Redisson的看门狗机制
redisson看门狗原创 2023-01-01 22:58:55 · 108 阅读 · 0 评论 -
redis缓存淘汰策略
定期删除策略的难点是确定删除操作执行的时长和频率:如果删除操作执行得太频繁,或者执行的时间太长,定期删除策略就会退化成定时删除策略,以至于将CPU时间过多地消耗在删除过期键上:面。在使用惰性删除策略时,如果数据库中有非常多的过期键,而这些过期键又恰好没有被访问到的话,那么它们也许永远也不会被删除(除非用户手动执行FLUSHDB),我们甚至可以将这种情况看作是一种内《泄漏–无用的垃圾数据占用了大量的内存,而服务器却不会自己去释放它们,这对于运行状态非常依赖于内存的Redis服务器来说,肯定不是一个好消息。原创 2023-01-01 14:59:00 · 465 阅读 · 0 评论 -
redis内存默认值调整
redis.conf配置文件修改maxmemory这个值来调整redis的内存大小。info memory命令可用查看redis内存使用情况。info可用查询redis下的各种命令。redis一般设置物理内存的3/4。原创 2022-12-31 17:22:57 · 390 阅读 · 0 评论 -
redis集群异步复制造成锁丢失(分布式锁)
代码写到这里,看下是不是还有问题,是不是解决了超卖现象,在高并发情况下其实这里依然会有问题,偶尔会出现异常。在redisConfig配置类注入bean。所以代码在加判断更严谨一下。注入Redisson。原创 2022-12-31 16:41:40 · 357 阅读 · 0 评论 -
redis的lua脚本解决原子操作
lua脚本保证redis操作原子性原创 2022-12-31 15:58:10 · 85 阅读 · 0 评论 -
redis分布式锁
分析:假设A线程在执行业务代码,平时这个业务只需要5秒完成,这时候又调用了另一个微服务B,此时微服务B宕机了,这时候A线程被阻塞导致超过了10秒,此时已经超过了锁的过期时间,这个时候锁被redis自己释放掉了,这时候微服务B有恢复了,A线程就会继续执行业务,此时A线程是没有锁的。然后这时候,A又过了2秒业务执行完毕,这时候在finally释放锁,此时的锁是B加的,这时候就会把B的锁释放了。问题:这时候锁释放错误,就需要解决,怎么才能自己释放自己加的锁?解决:加一个判断,只删除自己的。原创 2022-12-31 15:44:24 · 170 阅读 · 0 评论 -
redis事务命令复习
上面这个操作很顺利,没有其他线程干扰,也就操作成功。实际情况下,可能会收到其他线程干扰,下面的命令还没有提交。开启事务之后,讲要操作的命令都放到了QUEUED(queued)队列里,然后通过EXEC命令一起提交。这时候出现另一种情况,a线程来修改时候我希望没有其他线程来干扰我,这时候开启 监听WATCH。然后前面那个开启事务的提交,发现提交成功。开启了事务,没有提交,这时候又有一个客户端进来操作。此时A线程提交,此时提交失败,出现了 nil。这时候另一个终端连上来执行了k1的修改。multi:开启事务。原创 2022-12-31 15:40:09 · 70 阅读 · 0 评论 -
Redis-benchmark测试Redis性能
Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能。使用说明如下:Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>] -h <hos...原创 2019-04-15 13:36:25 · 123146 阅读 · 1 评论 -
Redis分布式锁
Redis分布式锁的正确实现方式前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了...原创 2019-01-05 16:49:47 · 122808 阅读 · 0 评论 -
redis缓存入门
Redis简介 Redis是Remote Dictionary Server(Redis) 的缩写,或许光听名字你就能猜出它大概是做什么的。不错,它是一个由Salvatore Sanfilippo编写的key-value存储系统,是一个使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型的Key-Value数据库,并提供多种语言的API。在很多地方,Redis转载 2018-01-17 14:04:01 · 105987 阅读 · 0 评论