LiSheng's blog LiSheng's blog
首页
笔记
个人简历
随笔集
GitHub (opens new window)
首页
笔记
个人简历
随笔集
GitHub (opens new window)
  • golang

  • cplus

  • leetcode

  • 存储技术

  • 分布式系统

  • 计算机网络

  • Linux操作系统

  • Redis

    • 大纲
    • redis持久化策略
    • redis事务
    • redis分布式锁
    • redis高可用
    • redis主从同步
    • Redis是什么
    • Redis基本数据结构
    • Redis为什么这么快
    • 缓存击穿、缓存穿透、缓存雪崩
    • 热Key问题,如何解决热key问题
    • Redis 过期策略和内存淘汰策略
    • Redis 的持久化机制
    • Redis的高可用
    • 使用过Redis分布式锁
    • Redis的跳跃表
    • MySQL与Redis 如何保证双写一致性
    • Redis的Hash 冲突怎么办
    • 布隆过滤器
    • Redis 事务机制
  • 其他

  • 笔记
  • Redis
lisheng
2024-09-10

Redis基本数据结构

Redis 作为一个高性能的键值对存储数据库,支持多种基本数据类型,每种类型都有其独特的特点:

  1. String(字符串):

    • 特点: 最基本的 Redis 数据类型,支持普通的字符串操作,如设置、获取、增减、拼接等。它是二进制安全的,因此可以存储任何类型的数据(如文本、图片、序列化对象等)。
    • 用途: 常用于缓存单一值、计数器、分布式锁等。
  2. List(列表):

    • 特点: 有序的字符串集合,可以在列表的两端进行元素的推入或弹出操作(如 LPUSH、RPUSH、LPOP、RPOP),还可以通过索引访问元素。列表按插入顺序排序。
    • 用途: 适用于消息队列、任务列表、日志存储等场景。
  3. Set(集合):

    • 特点: 无序的字符串集合,集合内的元素是唯一的。支持集合间的交集、并集、差集操作。
    • 用途: 适用于需要去重的场景,如共同好友、标签系统等。
  4. Hash(哈希表):

    • 特点: 键值对集合,每个键对应一个值,可以将一个对象的多个属性及其值存储在一起。提供对单个字段的操作(如 HSET、HGET)。
    • 用途: 常用于存储对象,如用户信息、配置项等。
  5. Sorted Set(有序集合):

    • 特点: 类似 Set,但每个元素会关联一个分数(score),元素按照分数从小到大排序。支持范围查询。
    • 用途: 适用于排行榜、带优先级的任务列表等场景。
  6. Bitmap(位图):

    • 特点: 底层是字符串,可以对字符串中的每个比特位进行操作。常用于高效的状态记录(如签到)。
    • 用途: 用户活跃状态、在线人数统计等。
  7. HyperLogLog:

    • 特点: 一种用于基数统计的概率性数据结构,虽然不能精确地获取集合的基数,但可以在小内存占用的情况下获取一个非常接近的结果。
    • 用途: 用于大规模去重计数,如统计独立访问用户数(UV)。
  8. Geo(地理位置):

    • 特点: 基于有序集合实现,可以存储地理位置(经纬度)数据,并提供附近位置查询等地理操作。
    • 用途: 地理位置服务,如查找附近的人或店铺。
  9. Stream(流):

    • 特点: 一种日志型数据结构,支持多消费者,数据可以按时间顺序读取,并且支持阻塞读取。
    • 用途: 消息队列、日志存储和处理等。
编辑 (opens new window)
上次更新: 2024/09/13, 11:59:12
Redis是什么
Redis为什么这么快

← Redis是什么 Redis为什么这么快→

最近更新
01
ceph分布式存储-对象存储(RGW)搭建
10-27
02
ceph分布式存储-集群客户端连接
10-27
03
ceph分布式存储-管理crushmap
10-27
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式