redis基本数据类型
2022-08-09 11:37:59 9 举报
AI智能生成
redis基本数据类型 命令操作大全
作者其他创作
大纲/内容
字符串
整数
浮点数
表达类型
命令 set [key] [value] 赋值操作
set
命令 get [key] 取值
get
命令 getset [key] [value] 取值并赋值
getset
命令 setnx [key] [value] 当key不存在时赋值 | set key value NX PX 3000 原子操作,px 设置毫秒数
setnx
命令 append [key] [value] 向字符串尾部添加数据
append
命令 strlen [key] 获取字符串长度
strlen
命令 incr [key] d递增数字
incr
命令 incrBy key [increment] 给key添加指定的整数 例如 incrBy key1 10;
incrBy
命令 decr [key] 递减数字
decr
命令 decrBy [key] [increment] 数字减少制定的整数
decrBy
常见命令
key和值都为字符串
普通的赋值
incr 整数递增,用于实现乐观锁+watch(事务)
setnx 用于实现 分布式锁;例如 当value不存在时采用赋值 setnx name zhangs 命令结果返回 1 如果返回0 表示已经存在
应用场景
String类型
可存储有序,可重复的数据元素
基于底层数据结构导致获取头部和尾部的元素速度极快
list元素的个数为 2^32-1个
类型说明
从左侧插入列表
命令 lpush [key] v1 v2 v3.....
lpush
从列表左侧取出数据
命令 lpop [key]
lpop
从右侧插入列表
命令 rpush key v1 v2 v3...
rpush
从列表右侧取出元素
命令 rpop [key]
rpop
将值插入到列表头部
命令 lpushx [key] [value]
lpushx
将值插入到列表尾部
命令 rpushx [key] [value]
rpushx
从列表左侧取出数据,如果列表为空阻塞,可以设置最大阻塞时间 单位为 秒
命令 blpop [key] [timeout]
blpop
从列表y右侧取出数据,如果列表为空阻塞,可以设置最大阻塞时间 单位为 秒
命令 brpop [key] [timeout]
brpop
获取列表中元素个数
命令 llen [key]
llen
获得列表中下标为index的元素 index从0开始
命令 lindex [key] [index]
lindex
返回列表中指定区间的元素,区间通过start和end指定
命令 lrange [key] [start] [end]
lrange
删除列表中 key下面与value相等的元素,count>0 从左边开始删除,count< 0从右边开始删除,count=0删除所有元素
命令 lrem [key] [count] [value]
lrem
给下标为index设置vaule
命令lset [key] [index] [value]
lset
对列表进行修改,只保留start-end区间
命令 ltrim [key] [start] [end]
ltrim
从key1列表右侧弹出并插入到key2列表左侧
命令 rpoplpush [key1] [key2]
rpoplpush
从key1列表右侧弹出并插入到key2列表左侧,{会阻塞}
命令 brpoplpush [key1] [key2]
brpoplpush
将value插入到列表,且位于值pivot之前或之后
命令 linsert [key] [BEFORE]/[AFTER] [pivot] [value]
linsert
作为 栈或者队列使用 ;因为是list 列表有序
可用于各种列表,比如用户列表、商品列表、评论列表等。
List列表类型
无序;唯一元素
集合中最大的个数为 2^32-1
集合添加新成员
命令 sadd [key] mem1 mem2.....
sadd
删除集合中指定成员
命令 srem [key] mem1 mem2 ....
srem
获取集合中的所有元素
smembers [key]
smembers
随机返回集合中一个元素 ,并删除该元素
命令 spop [key]
spop
随机返回集合中一个元素,不删除该元素
命令 srandmember [key]
srandmember
获取集合中元素的个数
命令 scard [key]
scard
判断元素mem是否在集合中
命令 sismember [key] [mem]
sismember
求多集合的交集
命令 sinter [key1] [key2]..
sinter
求多集合的差集
命令 sdiff [key1] [key2]....
sdiff
求多集合的并集
命令 sunion [key1] [key2]....
sunion
适用于不能重复且没有顺序的数据结构;例如 可以使用spop进行抽奖活动
Set集合类型
sortedset(zset) 有序集合;元素本身无序且不重复
可按照分数排序(score) 分数可重复
为有序集合添加新元素
命令 zadd [key] score1 mem1 score2 mem2 score3 mem3
zadd
删除有序集合中的指定元素
命令 zrem [key] [mem1] [mem2].....
zrem
获得集合中的元素个数
命令 zcard [key]
zcard
命令 zcount [key] min max
zcount
在集合指定元素分数上添加整数
命令 zincrby [key] incrment member
zincrby
获取集合指定元素的分值
命令 zscore [key] [member]
zscore
获得集合中member的排名(按分值从小到大)
命令 zrank [key] [member]
zrank
获得集合中member的排名(按分值从大到小)
命令 zrevrank [key] [member]
zrevrank
获得集合中指定区间成员,按分数递增排序
命令 zrange [key] start end
zrange
获得集合中指定区间成员,按分数递减排序
命令 zrevrange [ley] start end
zrevrange
由于可以按照分值排序,所以适用于各种排行榜。比如:点击排行榜、销量排行榜、关注排行榜等。
sortedset有序集合类型
hash 是一个 string 类型的 field 和 value 的映射表,它提供了字段和字段值的映射。每个 hash 可以存储 2^32 - 1 键值对(40多亿)
赋值,不区别新增或修改
命令 hset [key] [field] [value]
hset
批量赋值
命令 hmset [key] [field1 value1] [field2 value2]
hmset
赋值,如果filed存在则不操作
命令 hsetnx [key] [field] [value]
hsetnx
查看某个field是否存在
命令 hexists [key] [field] [value]
hexists
获取一个字段值
命令 hget [key] [field]
hget
批量获取字段值
命令 hmget [key] [filed1 field2]
hmget
以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表
命令 hgetall [key]
hgetall
删除指定字段
命令 hdel [key] [field1 field2]
hdel
指定字段自增increment
命令 hincrby [key] [field] [increment]
hincrby
获取字段数量
命令 hlen [key]
hlen
对象的存储 ,表数据的映射
hash类型(散列表)
bitmap是进行位操作的
bitmap本身会极大的节省储存空间。
设置key在offset处的bit值(只能是0或者1)。命令例如: setbit user:1001 20220101 1
命令setbit [key] [offset] [value]
setbit
获得key在offset处的bit值
命令 getbit [key] [offset]
getbit
获得key的bit位为1的个数
命令 bitcount [key]
bitcount
返回第一个被设置为bit值的索引值
命令 bitpos [key] [value]
bitpos
对多个key 进行逻辑运算后存入destkey 中
bitop and[or/xor/not] destkey [key1 key2]
bitop
用户每月签到,用户id为key , 日期作为偏移量 1表示签到
查询用户在线状态, 日期为key,用户id为偏移量 1表示在线
bitmap位图类型
redis基本数据类型
收藏
收藏
0 条评论
下一页