Redis 笔记
1, Redis 常用的几种类型
- String
- List
- hash
- set
- zset(orderd set)
- bitmap
- HyperLogLog
- geospatial index
- stream
2, 命令:set key value [EX seconds] [PX milliseconds] [NX|XX]
- ex 在多少秒后过期
- px 在多少毫秒后过期
- NX 在key不存在时才创建key ,等同于setnx
- XX 当key存在时覆盖key
3, redis 分布式锁实现可能遇到的几个问题:
- 在应用集群环境中,synchronized 不能实现分布式锁。
- redis 的setnx 必须设置过期时间,服务器宕机,并且要保证原子性。
- 出现异常,解锁必须放在finally里边。
- 应用宕机,没有解锁,必须设置锁的超时时间。
- 设置锁和过期时间必须保证原子性。
- 当业务时就大于了redis 锁key设置的超时时间,需要续锁的时间。
- redis集群中,主redis挂了,锁没有同步要其它redis从机。
- 可以使用redisson的lock 和 unlock 来实现redis分布式锁(redlock 理论)。
public void method(){ RLock redissonLock = redisson.getLock("key"); try{ //业务逻辑代码块 }finally{ if(redissonLock.isLocked && redissonLock.isHeldByCurrentThread()){ redissonLock.unlock(); } } }

浙公网安备 33010602011771号