
redis
平静不绝望
ALOHA HEJA HE
-
原创 【redis】3.2.8rehash存在的隐患,最新5.0+版本的改进-源码分析
此文链接至美团2021-01-29 08:56:2950
0
-
原创 【redis】会撑爆内存吗?
redis.conf中的maxmemory选项,该选项是告诉Redis当使用了多少物理内存后就开始拒绝后续的写入请求,该参数能很好的保护好你的Redis不会因为使用了过多的物理内存而导致swap,最终严重影响性能甚至崩溃。...2020-04-26 12:15:03418
0
-
原创 【池】数值对象池 redis中的使用
数值对象池是什么?Redis内部采用了一个shared integer的方式来省去分配内存的开销,即在系统启动时先分配一个从1~n 那么多个数值对象放在一个池子中,如果存储的数据恰好是这个数值范围内的数据,则直接从池子里取出该对象,并且通过引用计数的方式来共享,这样在系统存储了大量数值下,也能一定程度上节省内存并且提高性能,这个参数值n的设置需要修改源代码中的一行宏定义REDIS_SHARED...2020-04-26 12:13:35174
0
-
原创 【REDIS SCAN】scan清理无效key,导致慢日志飙升
1 问题现场 private List<String> scanWithLimit(String pattern, int limit, int type) { Preconditions.checkArgument(StringUtils.isNotBlank(pattern)); List<String> list = Lis...2020-03-29 16:24:44448
0
-
原创 【思维导图】-- 读《redis实战》
1 目录2 构造支持程序3 计数器&统计2019-10-08 07:22:4361
0
-
原创 【RedissonClient】tryLock() 为什么做到了服务崩溃,lock也不会一直被占有?
源码解释:org.redisson.RedissonLock#tryAcquireOnceAsync private RFuture<Boolean> tryAcquireOnceAsync(long leaseTime, TimeUnit unit, final long threadId) { if (leaseTime != -1) { ...2019-09-21 08:57:175413
2
-
原创 【redis集群】阿里云redis集群 对lua脚本的支持程度
1 阿里云集群 对lua脚本的支持程度https://help.aliyun.com/document_detail/26356.htmlLua使用限制Lua脚本放开限制,标准版-双节点、标准版-单节点支持用户直接调用。集群版本条件性支持:a 所有key都应该由KEYS数组来传递,redis.call/pcall中调用的redis命令,key的位置必须是KEYS array(不能...2019-05-21 23:24:171624
2
-
原创 【故障】oom导致 redis超时 rec 队列打满,导致tomcat拒绝服务
1 现象描述:磁盘占用到了50% 累计 ;PRINT_GC="-XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-PrintHeapAtGC -XX:-UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -Xlogg...2019-05-20 23:44:32192
0
-
原创 【redis】 大key解决方案第二步
方案:对于量少的大key 可以考虑本地cache protected Cache<String, Set<String>> habitMemberCache = CacheBuilder.newBuilder().maximumSize(2000L).expireAfterWrite(1800L, TimeUnit.SECONDS).build();...2019-05-07 17:18:41392
0
-
原创 redis pipeline 事务到底怎么回事呢? 怎么执行的?
MULTI,EXEC,DISCARDandWATCHare the foundation of transactions in Redis.They allow the execution of a group of commands in a single step, with two important guarantees: All the commands in a tr...2019-04-25 11:47:27559
0
-
原创 【redis】 大key解决方案第一步
背景:redis作为缓存,经常困扰的一个问题就是大key,就是key值过大超过1M或者value过多超过1M个或者总的大小超过1MB。例如:lettuce客户端一直繁忙的处理大key引起的并发症。比如:系统中用了Set集合,每个item的大小是30个字符,即30字节大小,那么,10W条记录和1W条记录对应的Key大小情况如下:100000 * 30 字节 = 3,000,0...2019-04-27 22:44:071402
0
-
原创 redis--事务提交后 server端是如何处理并发来的其他请求的?exec multi pipleline
答案:单线程按照指令顺序执行;即 server端执行事务时,其他指令是不能被执行的,注意:请求是可以进来的,只是指令排到事务指令集合的后面。参考redis server端源码;C写;epoll 事件模型;多路复用技术;3个处理模型【请求流程,处理流程,响应流程】测试代码:目的是模拟普通请求和事务型请求并发 @Autowired private RedisCacheUti...2019-04-26 00:39:26129
0
-
原创 springboot+Redis 使用Hessian序列化
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.concurrent.TimeUnit;import org.springframework.data.redis.connection.RedisP...2019-01-21 16:27:17771
1
-
原创 Redis使用FastJson序列化/FastJson2JsonRedisSerializer --坑
很多小伙伴序列化代码是这样配置的public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> { public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); private Cl...2019-01-19 23:14:469652
0
-
原创 "Callback cannot return a non-null value as it gets overwritten by the pipeline"
常用pipeline,这个异常理解姿态:因为:pipeline模式 返回结果是 List<Object> closePipeline = connection.closePipeline(); 会覆盖掉自定义的返回值,所以没有理由去返回一个非null的值,没有用处,所以禁止回调返回非null的值,必须返回null,参考https://docs.spring.io/spring-da...2019-01-07 15:20:452510
0
-
原创 org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativ
java.lang.NullPointerException: null at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:959) ~[spring-...2018-12-13 15:06:084543
3
-
原创 【工具库】--redis 安装+使用示例+安全(181)
1 安装 //ubuntu 操作系统sudoapt−getupdatesudo apt-get update sudo apt-get install redis-server$redis-server$redis-cli redis 127.0.0.1:6379> ping PONGredis 127.0.0.1:6379> CONFIG GET * redis 127.0.0.1:2017-04-24 19:26:57152
0