Redis相关知识

Redis是一个开源的内存数据库,用于存储键值对。它支持多种数据结构,如字符串、哈希、列表、集合等。

Redis优势

  • 高性能:基于内存操作,读写速度快。
  • 数据结构丰富:支持多种数据结构,适用于不同场景。
  • 持久化:支持RDB快照和AOF日志两种持久化方式。
  • 支持事务:通过MULTI和EXEC命令实现事务操作。
  • 分布式:支持主从复制和Sentinel高可用。

Redis数据结构

  • 字符串(String)
  • 哈希(Hash)
  • 列表(List)
  • 集合(Set)
  • 有序集合(Sorted Set)

Redis持久化

Redis的持久化指的是将内存中的数据写入磁盘,以防止数据在服务器重启时丢失。主要有两种方式:RDB快照和AOF日志。
RDB是定期将内存中的数据生成快照并写入磁盘,适用于备份和恢复。AOF则是将每次写操作都追加到日志文件中,适用于实时的持久化。

Redis的数据过期策略

Redis使用两种过期策略:定时删除和惰性删除。定时删除是指在设置键的过期时间时同时创建一个定时器,过期时删除键。惰性删除是在访问键时检查过期时间,过期时删除键。

Redis实现分布式

Redis实现分布式主要通过主从复制和Sentinel高可用机制。主从复制是指一个主节点可以有多个从节点,数据同步从主节点到从节点。Sentinel是用于监控和自动故障恢复的系统。

Redis的哨兵

哨兵是用于监控Redis系统的组件,可以发现并通知系统中的其他组件有关Redis节点故障的信息。哨兵还可以执行自动故障转移,将故障节点的工作转移到备用节点上

Redis事务

Redis事务是一组命令的集合,可以一次性、顺序地执行,保证原子性。通过MULTI和EXEC命令来开启和执行事务。

Redis的缓存淘汰策略

  • LRU(Least Recently Used):
    描述: 选择最近最少使用的数据进行淘汰。
    配置参数: maxmemory-policy 设置为 “volatile-lru” 或 “allkeys-lru”。
  • LFU(Least Frequently Used):
    描述: 选择最不经常使用的数据进行淘汰。
    配置参数: maxmemory-policy 设置为 “volatile-lfu” 或 “allkeys-lfu”。
  • TTL(Time To Live):
    描述: 选择具有最早过期时间的数据进行淘汰。
    配置参数: maxmemory-policy 设置为 “volatile-ttl”。
  • Random(随机选择):
    描述: 随机选择要淘汰的数据。
    配置参数: maxmemory-policy 设置为 “volatile-random”。
  • NoEviction(不淘汰):
    描述: 不执行淘汰操作,而是返回错误,告知写操作无法完成。
    配置参数: maxmemory-policy 设置为 “noeviction”。

你可能感兴趣的:(redis,数据库,缓存)