Saki's 研究记录

watchdog 机制
看门狗啥意思如果业务代码没执行完,锁却过期了,这时候其他线程又能抢锁了,线程就不安全啦。所以 redisson内部有个 watchdog(看门狗)的自动延期的机制,意思是定时监测业务是否执行结束,没结束的话你这个锁是不是快到期了(超过锁的三分之一时间,比如设置的 30s过期,现在还剩 10s到期),那就自动续期直到任务结束释放锁,大概是这么个意思。这样做可以防止如果业务代码没执行完,锁却过期了所带来的线程不安全问题。 实际开发中: 1234// 具有 Watch Dog 自动延期机制 默认续 30s 每隔 30/3=10 秒续到 30slock.lock();// 尝试拿锁 10s 后停...
Parsing a Redis connection string
背景最近在工作中需要访问redis,为了方便使用,将redis的地址、端口、密码等写到配置中读取。例如: 12345# redis configurationredis: db: 0 addr: 'redis-ip:10086' password: '******' 这样配置是没问题的,但计划赶不上变化,当需求改成写个命令行工具来读访问 redis时,就用不上配置文件了。redis的配置需要从命令行的参数传入,例如: 1cmd subcmd --redis_addr 'redis-ip:10086' --redis_pw...
docker-compose 部署 Redis 的异常解决
背景使用docker-compose部署Redis后,拉起服务后通过docker log查看有异常报错。。。 内核参数 overcommit_memory1WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl ...