Redis学习笔记(3)-redis的基本类型结构及其命令

本文深入解析Redis提供的五种核心数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(ZSet)。每种类型都附有详细的命令介绍,帮助读者全面理解Redis的功能和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis为用户定义了五种数据类型,分别是:
String(字符串),Hash(哈希),List(列表),Set(集合),ZSet(有序集合),并且为这些数据类型提供了大量的命令,这些命令都是原子级别的。虽然大都数情况,我们不会直接用这些原生的命令,但是熟悉这些命令,会让我们对redis有一个更好的了解,而且很多语言对redis的访问的API,都是基于这些命令开发的,掌握这些命令以后对特定语言的API将会得心应手。

1. 字符串

命令格式说明
set key value赋值
get key取值
setnx key value(Set if Not Exist)只有在 key 不存在时设置 key 的值
setrange key offset value用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
getrange key start end返回 key 中字符串值的子字符
getset key value将给定 key 的值设为 value ,并返回 key 的旧值
incr key递增数字
incrby key increment增加指定的整数
decr key减少数字
decrby key increment减少指定的整数
incrbyfloat key increment增加指定浮点数
append key value向尾部追加值
strlen key获取字符串长度
mget key [key …]一次获取多个键值
mset key value [key value…]一次设置多个键值
getbit key offset获取键值得指定二进制位的值
setbit key offset value设置键值得指定二进制位的值
bitcount key [start] [end]获取键值中位是1的二进制位的个数
bitop operation destkey key [key …]对指定的键值做二进制的位运算,结果保存在destkey中,支持AND, OR, XOR, NOT
setex key seconds value(Set Expire)将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)
psetex key milliseconds value(Precise Set Expire)这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位

2. 哈希

命令格式说明
hget key field取值
hset key field value赋值
hmget key filed [field …]一次获取多个值
hmset key filed value [filed value…]一次设置多个值
hgetall key一次获取所有的值
hexists key field判断字段是否存在
hsetnx key field value当字段不存在时赋值
hincrby key field increment增加数字
hdel key field删除字段
hkeys key获得字段名
hvals key获取字段值
hlen key获取字段数量
HINCRBYFLOAT key field increment为哈希表 key 中的指定字段的浮点数值加上增量

3. 列表

命令格式说明
LPUSH key value [value …]向列表左端添加数据
RPUSH key value [value …]向列表右端添加数据
LPOP key从列表左端弹出数据
RPOP key从列表右端弹出数据
LLEN key获取列表元素格式
LRANGE key start stop获取列表片段
LREM key count value删除列表指定值得元素
LINDEX key index获取指定索引的元素
LSET key index value设置指定索引的元素值
LINSERT key before|after pivot value在指定元素前后插入元素
RPOPLPUSH source destination将元素从一个列表转移到另一个列表
LPUSHX key value(List Push if exist)将一个或多个值插入到已存在的列表头部
LTRIM key start stop只保留指定区间内的元素,不在指定区间之内的元素都将被删除
BLPOP key1 [key2… ] timeout移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止,如果timeout为0则一直等待下去
BRPOP key1 [key2… ] timeout移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止,如果timeout为0则一直等待下去

4. 集合

命令格式说明
SADD key member [member …]增加元素
SREM key member [member …]删除元素
SMEMBERS获取集合中的所有元素
SISMEMBER key member判断集合中的元素是否存在
SDIFF key [key …]差集
SINTER key [key …]交集
SUNION key [key …]并集
SCARD key获得集合中元素个数
SDIFFSTORE dest key [key …]差集存储结果于dest
SINTERSTORE dest key [key …]交集存储结果于dest
SUNIONSTORE key [key …]并集存储结果于dest
SRANDMEMBER key [count]随机从集合中获得元素
SPOP key随机从集合中弹出一个元素
SMOVE source destination member将member元素从source集合移动到destination集合

5. 有序集合

命令格式说明
ZADD key score1 member1 [score2 member2 …]添加一个或多个成员到有序集合,或者如果它已经存在更新其分数
ZSCORE key member获取元素分数
ZRANGE key start stop [withscores]获取某个范围内的元素列表
ZREVRANGE key start stop [withscores]逆序获取某个范围内的列表
ZRANGEBYSCORE key min max [withscores] [limit offset count]集合(升序)排序后取score在[min, max]内的元素,并跳过offset个,取出n个
ZINCRBY key increment member增加某个元素的分数
ZCARD key获取元素个数
ZCOUNT key min max统计指定范围内的元素个数
ZREM key member [member …]删除一个或多个元素
ZREMRANGEBYRANK key start stop删除排名范围内的元素
ZREMRANGEBYStore key min max删除分数范围内的元素
ZRANK key member获得元素排名
ZREVRANK key member获得元素逆序排名
ZINTERSTORE destination numkeys key [key …] [weights weight [weight …]] [aggregate sum|min|max]计算有序结合的交集

6. 其他

命令格式说明
KEYS PATTERN获取符合规则的键名列表,pattern支持global风格的通配符号:?,*,[],\x
EXISTS key判断一个键是否存在
DEL key删除键
TYPE key获取键的类型

global类型的通配符规则

符号含义
通配一个字符
*匹配0个或多个字符
[]匹配一个范围的字符,比如[a-d],可以匹配abcd中任意一个字符
\x匹配专意字符x,比如要匹配?,可以使用?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值