Redis 笔记

1, Redis 常用的几种类型

  1. String
  2. List
  3. hash
  4. set
  5. zset(orderd set)
  6. bitmap
  7. HyperLogLog
  8. geospatial index
  9. stream

2, 命令:set key value [EX seconds] [PX milliseconds] [NX|XX] 

  1. ex 在多少秒后过期
  2. px 在多少毫秒后过期
  3. NX 在key不存在时才创建key ,等同于setnx
  4. XX 当key存在时覆盖key

3, redis 分布式锁实现可能遇到的几个问题:

  1. 在应用集群环境中,synchronized 不能实现分布式锁。
  2. redis 的setnx 必须设置过期时间,服务器宕机,并且要保证原子性。
  3. 出现异常,解锁必须放在finally里边。
  4. 应用宕机,没有解锁,必须设置锁的超时时间。
  5. 设置锁和过期时间必须保证原子性。
  6. 当业务时就大于了redis 锁key设置的超时时间,需要续锁的时间。
  7. redis集群中,主redis挂了,锁没有同步要其它redis从机。
  8. 可以使用redisson的lock 和 unlock 来实现redis分布式锁(redlock 理论)。
public void method(){
    RLock redissonLock = redisson.getLock("key");  
    try{
        //业务逻辑代码块
    }finally{
       if(redissonLock.isLocked && redissonLock.isHeldByCurrentThread()){
            redissonLock.unlock();
        }
    }  
}    

 

posted @ 2022-02-28 22:16  Baby~She  阅读(12)  评论(0)    收藏  举报