Redis 学习笔记(一)- 基本数据结构

用了好几年的Redis,很多东西还是一知半解。于是决定系统的学习一下,也写些笔记以做巩固。

Redis 有哪些特性

  • 速度快(单线程)
  • 基于键值对的数据结构服务器
  • 丰富的功能
    • 除了基础的5种数据结构,还提供了发布订阅、Lua脚本、简单的事务等等功能。
  • 简单稳定
  • 客户端语言多
  • 持久化
  • 主从复制
  • 高可用及分布式

Redis 能用来做什么

  • 缓存
  • 分布式锁
  • 排行榜系统
  • 计数器应用(如 api 限频)
  • 消息队列系统

Redis 的基本数据结构

Redis 使用了单线程架构和 I/O 多路复用模型来实现高性能的内存数据库服务。它提供了 5 种数据结构。

字符串
  • 常用命令
    • set key value [ex seconds] [px milliseconds] [nx|xx]
    • get key
    • mset key value [key value …]
    • hget key [key …]
    • incro key (如果键值不存在,会按照值0自增,返回1)
  • 内部编码
    • int : 长整型(8字节,-2^63 ~ 2^63 -1)
    • embstr :大于等于39个字节的字符串
    • raw:大于39个字节的字符串
  • 使用场景
    • 缓存
    • 计数
    • 共享 session
    • 限频
哈希
  • 常用命令
    • hset key field value
    • hget key field
    • hdel key field [field …]
    • hmset key field value [field value …]
    • hmget key field [field]
    • hkeys key (获取所有field)
    • hvals key (获取所有vaule)
    • hgetall key (获取所有field-value)
  • 内部编码
    • ziplist (压缩列表)
    • hashtable (哈希表)
  • 使用场景
    • 存储数据库表记录
列表
  • 常用命令
    • rpush key value [value …] (lpush 同理) ( r-right, l-left)
    • linsert key before|after pivot value 从某个值前后插入元素
    • lrange key start end
    • lindex key index 获取指定索引下标元素
    • llen key 列表长度
    • lpop key (rpop 同理)
  • 内部编码
    • ziplist (压缩列表)
    • linkedlist (链表)
  • 使用场景
    • 消息队列(如 laravel 的队列实现)
集合
  • 常用命令
    • sadd key element [element …]
    • srem key element [element …]
    • scard key 计算元素个数
    • sismember key element 判断元素是否在集合中
    • smembers key 获取所有元素 (慎用)
    • sinter key [key …] 多个集合的交集
    • sunion key [key …] 多个集合的并集
    • sdiff key [key …] 多个集合的差集
  • 内部编码
    • intset (整数集合)
    • hashtable (哈希表)
  • 使用场景
    • 用户标签
    • 大数组操作
有序集合
  • 常用命令
    • zadd key score member [score member …]
    • zcard key 计算成员数量
    • zscore key member 获取成员的分数
    • zrem key member [member …]
    • zrange key start end [withscores] 从低到高返回指定排名范围的成员 (下标从0开始)
  • 内部编码
    • ziplist (压缩列表)
    • skiplist (跳跃列表)
  • 使用场景
    • 排行榜

键管理

单个键
  • 重命名 :rname key newkey
  • 随即返回一个key :randomkey
  • 键过期
    • expire key seconds
    • expire key timestamp
    • ttl key
  • 迁移键
    • move key db
    • dump + restore
    • migrate
遍历键
  • 全量遍历键:keys pattern
  • 渐进遍历键:scan cursor [match pattern] [count number] (number 默认为10)
数据库
  • 切换数据库:select dbIndex
  • 清除数据库:flushdb/flushall
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis全套学习笔记.pdf》是一本关于Redis数据库学习笔记,内容涵盖了Redis基本概念、原理、操作、应用等方面的知识。 首先,Redis是一种开源的内存数据库,它具有高性能、高可用性和高扩展性的特点。它可以用于缓存、消息队列、实时排行榜等场景,广泛应用于Web应用开发、大数据存储和分析等领域。 在学习笔记中,首先介绍了Redis基本概念,包括数据结构、持久化、单线程架构等方面的知识。数据结构包括字符串、哈希表、列表、集合和有序集合等,笔记详细介绍了它们的特点和使用方法。持久化方面,介绍了RDB快照和AOF日志两种持久化方式的原理和使用方法。同时,笔记也解释了为什么Redis选择单线程架构以及如何充分利用单线程的优势。 其次,学习笔记还包括了Redis的常用操作,例如数据的增删改查、事务和管道操作、过期时间设置等。这些操作是使用Redis进行开发和使用时必不可少的知识点,通过学习笔记可以快速掌握这些操作的使用方法。 此外,学习笔记还涉及了Redis的高级应用,如发布订阅、Lua脚本、事件通知等。这些高级应用可以帮助开发者更好地利用Redis的功能和特性,提升系统的性能和稳定性。 综上所述,《Redis全套学习笔记.pdf》是一本全面介绍Redis学习资料,通过学习这本笔记,读者可以了解Redis基本概念和原理,掌握Redis的常用操作和高级应用,从而更好地使用Redis进行开发和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值