面试题:redis除了使用string、set还了解哪些类型
除了 String 和 Set 类型,Redis 还支持以下数据类型:
- Hash(哈希)
Hash 是一个 key 对应多个 field-value 的键值对集合。在 Redis 中可以使用 hash 来表示用户对象、商品信息等数据。
例如下面的命令将以 user_id:1 为键名,包含 username、age、address 等属性作为字段,将具体信息存为哈希表:
HSET user_id:1 username "张三" age 20 address "上海"
- HSET :设置哈希表中某个字段的值。
- user_id:1 :哈希表的键名,类似于 Map 中的 Key。
- username,age,address:哈希表中的字段,对应于属性名。
- 张三,20,上海:哈希表中的字段值,对应于属性的具体值。
- List(列表)
List 是可重复且有序的字符串集合,与 Java 中的 List 非常类似。在 Redis 中可以使用 List 存储聊天室历史消息、任务队列等数据。
例如下面的命令用来向 tasks 列表左端插入一条任务:
LPUSH tasks "完成 Redis 教程"
- LPUSH:将一个或多个元素插入到列表头部。
- tasks:列表的名称。
- “完成 Redis 教程”:需要插入的元素。
- Set(集合)
Set 是不允许重复且无序的字符串集合,与 Java 中的 Set 非常类似。在 Redis 中可以使用 Set 存储点赞用户、订单信息等数据。
例如下面的命令用来添加 user_id 到 like_list 的集合中:
SADD like_list user_id
- SADD:向集合中添加一个或多个元素。
- like_list:集合的名称。
- user_id:要添加的元素。
- Zset(有序集合)
Zset 是在 Set 的基础上增加了自动排序功能的集合,其中每个元素都表示为字符串成员和浮点数分值之间极度短暂的映射。在 Redis 中可适用于按关键词搜索排名前 N 的文章等应用场景。
以上就是 Redis 支持的一些常见数据类型,不同的数据类型具有各自特点。需要根据业务需求选择合适的数据类型进行存储和操作。