Redis | 青训营

76 阅读2分钟

redis部分

redis的基础部分:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)、消息队列还有哨兵模式。可以用图形化界面更加直观的操作。 字符串可以进行读取、自增减、追加、设置操作。列表就是有序的字符串,在两端可以执行插入和删除元素 哈希以键值对的形式储存,可以通过键查询到值。 set和sorted sets见名知意,一个是无序的,一个是有序的。 哨兵模式:一般会设置三个哨兵,通过选举选出一个主的,在主节点死机时,将一个从节点提升至主节点。哨兵如果坏了,会选举另一个主要的。 redis中的删除是直接清除,直接释放数据,所以一般采用设置过期时间,直接让数据过期。 可以为键设置过期时间,通过设置键的生存时间(TTL)来实现软删除的效果。一旦过期时间到达,Redis会自动删除键及其关联的值。可以使用EXPIREPEXPIRE等命令设置键的过期时间。 获取或设置多个key时会用到Pipeline,一次性发送到redis的服务端(批量操作)。HGetAll获取所有。 rehash:hash扩容、部分部分的拷贝。拷贝完毕后,h[0]和h[1]交换。hash扩容过程中不能阻塞用户使用,所以需要rehash。在用户的访问的同时,进行拷贝,拷贝部分至h[1]。h[0]为原始。 倒序排列,zset数据结构。 SkipList跳跃表:将长链分成多层子链。通过dict(hash)键查找值。也可以通过hash进行跳表 分布式锁:使用redis实现setnx(不是高可用)

  1. redis需要是单线程
  2. setnx只有未设置才能执行成功
  3. bloom filter算法(布隆过滤器) 以我的理解,redis作为缓存器,用于解决热点,就是访问量较高的数据,多次的访问会导致数据库崩掉,redis就是缓解压力。而且redis访问、存储的速度更快,可以大大提升程序的性能。