redis数据类型

数据类型

字符串:

string、hash、list、set、zset、none

命令:

set key value [EX 秒|PX 毫秒] [NX|XX] 		设置键值对
get key
del key1 [key2 ..]		删除键值对
setnx 键 值 [xx]			key是否存在设置键值对
incr/decr key			递增、递减数值key,key要放数值
incrny/decrby key		运算:+/-
mget key1 [key2 ..] 		批量查看键值对
mset key1 v1 [key2 v2 ..]	批量设置键值对
append key "追加内容"		把key的内容追加进字符中
getset key 新值			设置新值,并返回旧值
strlen key 			查看key的字节长度
exists key 			判断key是否存在,1存在,0为不存在
ttl key 			查看有效期,-1永久,-2过期
expire key 秒 			重设有效期
persist key 			设置key为永不过期

数值递增

set num 1
incr num

数值递减

decr num

---

列表:

命令:

下标取值可以0开始(头),也可以-1开始(尾),-2

lpush a b c 	排序-->右:  c(1) b(2) a(3)
rpush a b c  	排序<--右: a(1) b(2) c(3)
llen key 		查看元素个数
lindex key -1	查看下标的内容
lrange key 0 -1  	范围取列表数据,0下标和-1下标,-1为最后一个
lset 键 下标 值 		修改列表的值
lpop list1 [下标]	 	默认取出左边第一个
rpop list1 [下标]		默认取出右边第一个
ltrim list 2 5		字符切片,删除2-5以外的字符

例: 列表插入数据(生产者消费者消息队列就是此实现)

#插入数据,也就是生产消息
lpush k1 v1 v2向k1列表插入数据
rpush k1 v3 

#取出数据,也就是消费消息
rpop k1
lpop k1

image

集合:

无序集合:

Set类型是String类型的无序集合,集合中的成员是唯一的,这就意味着集合中不能出现重复的数据,可以在两个不同的集合中对数据进行对比并取值

特点:

  • 无序、无重复元素、集合间操作

命令:

sadd key1 v1 [v2 v3 ...]	添加无序集合
sadd k1 v4 v5			可追加内容,但不能重复
smembers key1 			查看集合中的值
srem key1 v1			删除集合中的值
sinter key1 key2 		取两个集合之间的共同处
sdiff key1 key2 		取两个集合之间的非共同内容
sunion key1 key2 		把两个集合去重后融合在一起

有序集合:

有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double(双精度浮点型)类型的分数,redis正是通过该分数来为集合中的成员进行从小到大的排序,有序集合的成员是唯一的,但分数(score)却可以重复,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1), 集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)

特点:

  • 有序、不可重复元素、
  • 每个元素由score和value组成
  • score可以重复,value不可重复
  • 按score的数值大小排序

命令:

score必须是数值

zadd key s1 v1 [s1 v2 s2 v3 ..] 	添加有序集合
zrange key1 0 -1		score正向排序显示所有
zrevrange key1 0 -1		score反向排序
zrange key1 0 -1 withcores	score也显示出来
zcard key1 			显示元素总数
zrange key1 v2			显示v2对应的索引下标
zrem key1 v2 [v1 ..]		删除v2的值

哈希:

是一个string类型的field和value的映射表,hash特别适合用于存储对象,Redis 中每个 hash 可以存储2^32-1键值对(40多亿)

命令:

hset 键1 哈希域 值1 	设置哈希表(hash表就是哈希域)
hget k1 hash1 获取hash1表中的k1键和值
hgetall hash1			查看hash1表的所有键值对
hdel hash1 k2			删除k2键
hmget hash1 k1 k2 		查看hash1表的多个key
hkeys hash1				只查看hash1表的所有key
hvals hash1 			只查看hash1的所有value
del hash1
posted @ 2022-02-16 11:14  suyanhj  阅读(31)  评论(0)    收藏  举报