基础数据结构: string, list, hash, set, zset
以下均是以 php 数据类型为基础的理解, 其他语言会有些差异
- string: 字符串
$redis = 'redis';
- list: 默认键的一维数组
$redis => [
0 => 'r',
1 => 'e',
2 => 'd',
3 => 'i',
4 => 's',
],
- hash: 一维数组
$redis => [
'r' = 'r',
'e' = 'e',
'd' = 'd',
'i' = 'i',
's' = 's',
],
- set: 值为 null 的一维数组
$redis => [
'r' = null,
'e' = null,
'd' = null,
'i' = null,
's' = null,
],
- zset: 用值排序的一维数组
$redis => [
'r' = <sort>,
'e' = <sort>,
'd' = <sort>,
'i' = <sort>,
's' = <sort>,
],
使用场景
参考书籍: Redis 深度历险:核心原理与应用实践
- 记录帖子的点赞数、评论数和点击数 (hash)。
- 记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。
- 记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。
- 记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。
- 缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。
- 记录帖子的相关文章 ID,根据内容推荐相关帖子 (list)。
- 如果帖子 ID 是整数自增的,可以使用 Redis 来分配帖子 ID(计数器)。
- 收藏集和帖子之间的关系 (zset)。
- 记录热榜帖子 ID 列表,总热榜和分类热榜 (zset)。
- 缓存用户行为历史,进行恶意行为过滤 (zset,hash)。