Redis五大基本数据类型

1、字符串类型

字符串类型相当于 java 中的 String 类型。Redis 中的 String 类型以二进制方式存储,不会做任何的编码转换,因此不仅仅可以存储文本数据、整数、普通的字符串、JSON、xml文件,还可以存储图片、视频、音频。String 存储的种类虽然很多,但是限制了 String 的大小,最多只能存储 512MB。

这里的 key 和 value 就是字符串类型。

在 Redis 中,当你重新 set 一个已经存在的 key 时,它的 value 会变成最新的 value。

String的基本命令

SET:存储一个 string 类型的 value

SETNX:当 key 不存在时,存储一个 string 类型的 value,key 存在时,则无效

GET:获取一个 key 的 value

MGET:一次操作获取多个 key 的 value

2、散列(哈希)类型

哈希类型相当于 java 中的 HashMap 类型。Redis 的散列是结构化为字段-值对集合的记录类型。可以使用散列表示基本对象和存储计数器分组等。如下图所示:

散列的基本命令

HSET:设置一个 hash 中的一个或多个字段

HGET:返回给定字段的值

HMGET:返回给定的一个或者多个字段的值

HINCRBY:将给定字段的值增加所提供的整数

3、列表类型

Redis 中的列表是字符串值的链表,它通常被用于:

  1. 实现堆栈和队列

  2. 为后台工作者系统构建队列管理

列表的基本命令

LPUSH:在列表的头部添加一个新的元素

RPUSH:在列表的尾部添加一个新的元素

LPOP:删除列表头部的元素,并且将该元素作为返回值返回

RPOP:删除列表尾部的元素,并且将该元素作为返回值返回

LLEN:返回列表的长度

LMOVE:原子地将元素从一个列表移动到另一个列表

LTRIM:将列表减少到指定的元素范围

4、集合类型

Redis 的集合是一个唯一的字符串组成的无序集合,它可以应用在以下场景:

  1. 跟踪唯一的项目(例如,跟踪访问给定的博客文章的所有的唯一 IP 地址)

  2. 表示关系(例如,具有给定角色的所有用户的集合)

  3. 执行公共集合操作,如交集、联合和差

集合的基本命令

SADD:向 set 中添加一个新成员

SREM:从 set 中移除指定的成员

SISMEMBER:检测一个字符串是不是 set 中的成员

SINTER:返回两个或多个集合共有的成员集(即交集)

SCARD:返回 set 的大小

5、有序集合

Redis 的有序集合是按相关分数排序的唯一字符串(成员)的集合。当多个字符串具有相同的分数时,字符串按字典顺序排列。有序集合的一些用例包括:

  1. 排行榜:例如,我们可以使用有序集合来轻松地维护大型在线游戏中最高分的有序列表。

  2. 限价器:特别是,我们可以使用有序集合来构建滑动窗口速率限制器,以防止过多的 API 请求。

有序集合的基本命令

ZADD:添加一个新的成员和与之有关的分数到有序集合中,如果这个成员已经存在,那么更新该成员的分数

ZRANGE:返回在给定的范围内,排好序的有序集合的成员

ZRANK:返回指定的成员的排名,假设排序顺序为升序

ZREVRANK:返回指定的成员的排名,假设排序顺序为降序

相关推荐
layman05281 小时前
node.js 实战——mongoDB
数据库·mongodb·node.js
爱可生开源社区2 小时前
SQLShift 全新上线:Oracle→OceanBase 迁移利器
数据库
wkj0012 小时前
java 和 C#操作数据库对比
java·数据库·c#
bxlj_jcj2 小时前
如何实现Redis和Mysql中数据双写一致性
redis·缓存·架构
编程在手天下我有2 小时前
Redis 数据类型全览:特性、场景与操作实例
数据库·redis·数据结构与算法
左灯右行的爱情2 小时前
缓存并发更新的挑战
jvm·数据库·redis·后端·缓存
Qiuner3 小时前
软件设计师速通其一:计算机内部数据表示
服务器·数据库·信号处理
文牧之4 小时前
PostgreSQL oracle_fdw 扩展解析
运维·数据库·postgresql
一个天蝎座 白勺 程序猿5 小时前
Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解
数据库·python·mysql