Redis-key和五大数据类型

这篇博客详细介绍了Redis中的五大数据类型,包括Key的基本操作如查询、移动和设置过期时间,以及String、List、Set、Hash和Zset的特性和使用场景。String作为基本类型,支持二进制安全存储;List适用于存储有序列表,底层实现为链表;Set为无序集合,基于HashTable;Hash用于存储键值对,适合对象存储;Zset是有序集合,成员关联分数进行排序,支持重复分数。

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

Key

常用命令:

  • keys *:查询所有key
  • exists key:判断某个key是否存在
  • move key dbnum:从当前库移动到指定库
  • expire key secone:为给定的key设置过期时间
  • ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • type key:查看你的key的数据类型

Redis字符串(String)

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

常用命令含义
set key设置指定 key 的值
get key获取指定 key 的值
del key删除指定 key 的值
append key value如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾
strlen key返回 key 所储存的字符串值的长度
Incr key将 key 中储存的数字值增一
decr key将 key 中储存的数字值减一
incrby key increment将 key 所储存的值加上给定的增量值(increment)
decrby key increment将 key 所储存的值加上给定的减量值(increment)
setex key second value设置带过期时间的key-value对
setnx key value只有在 key 不存在时设置 key 的值
getrange key start end获取指定区间范围内的值(0 -1表示所有)在这里插入图片描述
setrange key offset valuesetrange设置指定区间范围内的值在这里插入图片描述
mget key1 key2…批量获取key值
mset key1 v1 key2 v2…批量设置key-value对
msetnx key1 v1 key2 v2同时设置一个或多个 key-value 对,仅所有给定 key 都不存在时成功
getset key value先get旧值,再set新值

Redis列表(List)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表。

常用命令含义
lpush key v1 v2…将一个或多个值插入到列表头部
rpush key v1 v2…将一个或多个值插入到列表尾部
lrange key start stop获取列表指定范围内的元素
lpop key移出并获取列表头部的第一个元素
rpop key移出并获取列表尾部的第一个元素
lindex key index通过下标从头部开始获取列表中的元素
llen key获取列表长度
lrem key count value移除列表元素:count数量,value被移除的值
ltrim key start stop截取指定范围的值后再赋值给key:start开始索引,stop结束索引
rpoplpush list1 list2移除列表的最后一个元素,并将该元素添加到另一个列表并返回
lset key index value通过下标从插入元素到列表
linsert key before/after v1 v2…在list某个已有值的前后再添加具体值

Redis集合(Set)

Redis的Set是string类型的无序集合。它是通过HashTable实现实现的。

常用命令含义
sadd key v1 v2…向集合添加一个或多个成员
smembers key获取所有成员
sismember key value判断value元素是否是集合 key 的成员
scard key获取集合里面的元素个数
srem key value删除集合中元素
srandmember key随机出几个
spop key随机出栈
smove key1 key2 value把key1中的value值移动到key2
sdiff key1 key2求key1和key2的差集
sinter key1 key2求key1和key2的交集
sunion key1 key2求key1和key2的并集

Redis哈希(Hash)

Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,并且value值是一个键值对,hash特别适合用于存储对象。

常用命令含义
hset key field value将哈希表 key 中的字段 field 的值设为 value
hget key field获取给定字段的值
hmset key field1 value1 field2 value2…同时将多个 field-value (域-值)对设置到哈希表 key 中
hmget key field1 field2…获取给定多个字段的值
hgetall key获取在哈希表中指定 key 的所有字段和值
hdel key field1 field2…删除一个或多个哈希表字段
hlen key获取哈希表中字段的数量
hexists key field查看哈希表 key 中,指定的字段是否存在
hkeys key获取所有哈希表中的字段
hvals key获取所有哈希表中的值
hincrby key field increment为哈希表 key 中的指定字段的整数值加上增量 increment
hincrbyfloat key field increment为哈希表 key 中的指定字段的浮点数值加上增量 increment
hsetnx key field value只有当field不存在时能成功设置field-value值

Redis有序集合Zset(sorted set)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的score变量。
redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数score却可以重复。

常用命令含义
zadd key score1 member1 score1 member1…向有序集合添加一个或多个成员,或者更新已存在成员的分数
zrange key startIndex stopIndex通过索引区间返回有序集合指定区间内的成员,0 -1为全部
zrangebyscore key startScore stopScore [withscores]通过score返回有序集合指定区间内的成员
zrem key member1 member2…删除一个或多个成员
zcard key获取有序集合的成员数量
zcount key min max分数值在 min 和 max 之间的成员的数量
zrank key member获取指定成员下标
zscore key member获取指定成员score值
zrevrank key member逆序获得下标值
zrevrange key startIndex stopIndex逆序获取成员
zrevrangebyscore key startScore stopScore逆序获取成员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值