Redis数据类型

123 阅读3分钟

String类型

1.内存存储模型

image.png

2.常用操作命令

命令说明
set设置一个 key/value
get根据key获得对应的value
mset一次设置多个key/value
mget一次获得多个key的value
getset获得原始key的值,同时设置新值
strlen获得对应key存储的value的长度
append为对应的key的value追加内容
getrange 索引0开始截取value的内容
setex设置一个key的存活时间(秒)
psetex设置一个key的存活时间(毫秒)
setnx存在不做任何操作,不存在添加
msetnx原子操作(只要有一个存在不做任何操作)可以同时设置多个key,只有一个存在都不保存
decr进行数值类型的-1操作
decrby根据提供的数据进行减法操作
incr进行数值类型的+1操作
incrby根据提供的数据进行加法操作
incrbyfloat根据提供的数据进行浮点数相加操作

List类型

list列表相当于java中list集合,特点:有序 可重复

内存存储模型

image.png

常用操作指令

命令说明
lpush将某个值加入到一个key列表头部
lpushx同push,但是必须要保证这个key存在
rpush将某个值加入到一个key列表尾部
rpushx同rpush,但是必须要保证这个key存在
lpop返回和移除列表左边的第一个元素
rpop返回和移除列表右边的第一个元素
lrange获取某一个下表区间内的元素 可以用来实现分页
llen获取列表元素个数
lset设置某一个指定索引的值(所以必须存在)
lindex获取某一个指定索引位置的元素
lrem删除重复元素
ltrim保留列表中特定区间内的元素
linsert在某一元素之前或之后插入新元素

Set类型

特点:无序 不可重复

内存存储模型

image.png

常用命令

命令说明
sadd为集合添加元素
smembers显示集合中所有的元素 无序
scard返回集合中元素的个数
spop随机返回一个元素,并将这个元素在集合中删除
smove从一个集合中向另一个集合移动元素,必须是同一种类型
srem从集合中删除一个元素
sismember判断一个集合中是否含有这个元素
srandmember随机返回元素
sdiff去掉第一个集合中其他集合含有的相同元素
sinter求交集
sunion求合集

ZSet类型

特点:可排序的set集合,排序 不可重复

内存存储模型

image.png

常用命令

命令说明
zadd添加一个有序集合元素
zcard返回集合的元素个数
zrange升序 zrevrange 降序返回一个范围内的元素
zrangebyscore按照分数查找一个范围内的元素
zrank返回排名
zrevrank倒序排名
zscore显示一个元素的分数
zrem移除某一个元素
zincrby给某个特定元素加分

Hash类型

特点:value是一个map结构,存在key/value,key是无序的

内存存储模型

image.png

常用命令

命令说明
hset设置一个key/value
hget获得一个key对应的value
hgetall获得所有的key/value对
hdel删除某个key/value
hexists判断一个key是否存在
hkeys获得所有的key
hvals获得所有的value
hmset设置多个key/value
hmget获得多个key/value
hsetnx设置一个不存在的key的值
hincrby为value进行加法运算 value必须是数值类型
hincrbyfloat为value加入浮点值