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
集合:
无序集合:
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


浙公网安备 33010602011771号