Redis从基础到深入

Redis 从基础到深入

一、Redis是什么?

Redis 是一个开源的高性能键值存储、内存操作的数据库,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,广泛应用于缓存、消息队列、实时分析等场景。

二、常见的数据类型

  • String:最基本的数据类型,可存储字符串、整数、浮点数。
  • Hash:键值对集合,类似于 Map。
  • List:有序链表,可实现队列、堆栈等功能。
  • Set:无序集合,支持交集、并集、差集操作。
  • Sorted Set:有序集合,每个元素关联一个分数,按分数排序。

三、Redis数据结构的基本操作

1.String

SET mykey "Hello, Redis"
GET mykey           # 输出: Hello, Redis
INCR mycount        # 值自增,初始值为 1
INCRBY mycount 5    # 增加 5,值为 6
APPEND mykey "!"    # 修改为: Hello, Redis!

2.Hash

HSET user:1 name "Alice" age "25"
HGET user:1 name       # 输出: Alice
HGETALL user:1         # 输出: name Alice age 25
HDEL user:1 age        # 删除 age 字段

3.List

LPUSH mylist "a" "b" "c" # 列表为: c, b, a
RPUSH mylist "d" "e"     # 列表为: c, b, a, d, e
LRANGE mylist 0 -1       # 输出: c b a d e
LPOP mylist              # 移除并返回: c

4.Set

SADD myset "a" "b" "c"
SMEMBERS myset           # 输出: a, b, c
SISMEMBER myset "b"      # 输出: 1 (存在)
SREM myset "c"           # 删除 c

5.Sorted Set(ZSet)

ZADD leaderboard 100 "Alice" 200 "Bob" 150 "Charlie"
ZRANGE leaderboard 0 -1 WITHSCORES # 输出: Alice, Charlie, Bob
ZRANGEBYSCORE leaderboard 150 200  # 输出: Charlie, Bob
ZREM leaderboard "Alice"           # 删除 Alice

四、Redis高可用

  1. 主从复制
    从节点实时复制主节点数据,实现读写分离。
  2. 哨兵模式
    自动监控主节点状态,支持故障转移。
  3. 集群模式
    将数据分片存储到多个节点,支持大规模分布式架构。

五、Redis的内存淘汰策略

  1. noeviction:不淘汰任何数据,写操作会返回错误。

  2. allkeys-lru:从所有键中淘汰最近最少使用的键。

  3. volatile-lru:从设置了过期时间的键中淘汰最近最少使用的键。

  4. allkeys-random:从所有键中随机淘汰键。

  5. volatile-random:从设置了过期时间的键中随机淘汰键。

  6. volatile-ttl:从设置了过期时间的键中,优先淘汰即将过期的键。

  7. allkeys-lfu:从所有键中淘汰优先淘汰访问次数最少的键。

  8. volatile-lfu:从设置了过期时间的键中,优先淘汰淘汰访问次数最少的键。

六、Redis的使用场景

  1. 缓存:如热数据缓存、用户会话存储。
  2. 消息队列:基于 List 实现生产者/消费者模型。
  3. 计数器:如网站访问量统计,使用 INCR 实现。
  4. 排行榜:基于 Sorted Set 实现动态排名。
  5. 分布式锁:使用 SETNX 实现简单的分布式锁。

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