redis 基础数据结构及使用场景

BUG 0
k9606
k9606 2019-11-27 09:48:18
山西女婿...

基础数据结构: 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)。
回复
  • 暂无回复