Redis五大数据类型全解析| 面试必备干货

 Redis作为高性能的键值数据库,其核心魅力之一就是丰富的数据类型。今天我们就来彻底解析Redis的五种核心数据类型,帮你打好Redis基础!

Redis五种核心数据类型概览

  • String(字符串)

  • Hash(哈希,类似Java中的Map)

  • List(列表,类似LinkedList)

  • Set(集合,类似HashSet)

  • Zset(有序集合)

一、核心概念与最佳实践

1. Key命名规范

关键点:命名不宜过长,影响检索效率
原理:Redis的key搜索采用从短到长的匹配策略,过长的key会降低查询速度

2. 二进制安全特性

重要区别

  • MySQL等关系型数据库:二进制不安全,容易出现乱码

  • Redis:二进制安全,无乱码风险

原因:Redis仅在客户端进行编解码,避免了服务端频繁编解码带来的性能损耗和数据丢失风险。

二、String(字符串)类型

常用命令速览

SET key value          # 设置键值
GET key               # 获取值,key不存在返回(nil)
DEL key               # 删除键,返回删除数量
GETSET key value      # 先获取后修改
INCR key              # 自增1,不存在则初始化为0
DECR key              # 自减1
APPEND key value      # 追加字符串
INCRBY key increment  # 指定步长自增
DECRBY key increment  # 指定步长自减

三、Hash(哈希)类型

优势:占用磁盘空间极少

常用命令大全

HSET key field value              # 设置单个字段
HMSET key field1 value1 field2 value2  # 设置多个字段
HGET key field                    # 获取字段值
HMGET key field1 field2           # 获取多个字段值
HGETALL key                       # 获取所有字段和值
HDEL key field                    # 删除字段
DEL key                          # 删除整个哈希
HINCRBY key field increment       # 字段值自增
HEXISTS key field                 # 判断字段是否存在
HLEN key                         # 获取字段数量
HKEYS key                        # 获取所有字段名
HVALS key                        # 获取所有字段值

 

四、List(列表)类型

应用场景:大数据集合增删、任务队列

常用命令详解

LRANGE key start end             # 获取索引范围内元素
LPUSH key value1 value2          # 头部插入元素
RPUSH key value1 value2          # 尾部插入元素
LPOP key                        # 弹出头部元素
RPOP key                        # 弹出尾部元素
LLEN key                        # 获取元素个数
LREM key count value            # 删除指定数量元素
LSET key index value            # 通过索引替换元素
LINSERT key BEFORE/AFTER pivot value  # 在指定元素前后插入

​​​​​​​

高级应用:任务队列

RPOPLPUSH resource destination  # 原子操作:弹出尾部并加入另一列表头部

五、Set(集合)类型

特点:最大存储42亿元素,支持集合运算

常用命令集锦

SADD key member1 member2        # 添加元素
SREM key member1 member2        # 删除元素
SMEMBERS key                    # 获取所有元素
SISMEMBER key member            # 判断元素是否存在
SCARD key                       # 获取元素数量
SRANDMEMBER key                 # 随机返回一个元素

​​​​​​​

集合运算(核心优势)

SDIFF key1 key2                 # 差集:属于key1不属于key2
SINTER key1 key2                # 交集
SUNION key1 key2                # 并集
SINTERSTORE destination key1 key2 # 将交集结果存储

​​​​​​​

六、Zset(有序集合)类型

核心应用:排行榜系统

常用命令全集

ZADD key score1 member1 score2 member2  # 添加带分数成员
ZSCORE key member               # 获取成员分数
ZCARD key                      # 获取成员数量
ZREM key member1 member2       # 删除成员
ZRANGE key start end [WITHSCORES] # 按分数升序获取成员
ZREVRANGE key start stop [WITHSCORES] # 按分数降序获取成员
ZINCRBY key increment member   # 增加成员分数
ZCOUNT key min max             # 统计分数范围内成员
ZRANK key member               # 获取成员升序排名
ZREVRANK key member            # 获取成员降序排名

​​​​​​​

七、通用命令汇总

KEYS pattern                   # 查找匹配的key
DEL key1 key2                 # 批量删除
EXISTS key                    # 判断key是否存在
RENAME key newkey             # 重命名key
TYPE key                      # 获取key类型
EXPIRE key seconds            # 设置过期时间(秒)
TTL key                       # 查看剩余生存时间

​​​​​​

实战小贴士

  1. 键值对删除:当某个key中的所有字段被删除后,该key会自动移除

  2. Jedis连接:Java操作Redis时,注意配置防火墙和连接池

  3. 二进制安全:在Java中设置的值,在Redis中存储为二进制,只有在Java客户端获取时才进行解码

掌握这五种数据类型,你就掌握了Redis的核心功能!每种类型都有其独特的应用场景,在实际开发中要根据需求灵活选择。

image

 

posted @ 2025-10-18 11:32  暹罗软件开发  阅读(9)  评论(0)    收藏  举报