数据操作
redis是key-value的数据,所以每个数据都是一个键值对键的类型是字符串,键不能重复值的类型分为五种:
字符串string
哈希hash
列表list
集合set
有序集合zset
参考
数据的操作行为分为:保存、修改、获取和删除等。
数据操作的全部命令 参见https://redis.cn/commands.html
String
string是redis最基本的类型
最大能存储512MB数据
string类型是二进制安全的,可以存储任何数据,比如数字、图片等
设置单个键值: set key value
设置多个键值:set key value [key value...]
设置键值和过期时间(以秒为单位): setex key seconds value
获取单个键值:get key
获取多个键值:mget key [key...]
对应value加1: incr key
对应value减1: decr key
对应value加整数num: incrby key num
对应value减整数num: decrby key num
追加:append key value
获取长度:strlen key
正则查找键:
keys pattern
举例:
127.0.0.1:6379> set ha 111
OK
127.0.0.1:6379> set haha 222
OK
127.0.0.1:6379> set hahaha 333
OK
127.0.0.1:6379> keys ha*
1) "ha"
2) "haha"
3) "hahaha"
判断key是否存在,如果存在返回1,不存在返回0
exists key [key…]
举例:
127.0.0.1:6379> exists 1
(integer) 1
127.0.0.1:6379> exists haha
(integer) 1
127.0.0.1:6379> exists hahaha
(integer) 1
127.0.0.1:6379> exists hah
(integer) 0
查看键对应的value的类型:
type key
举例:
127.0.0.1:6379> type fu
string
删除键及对应的值:
DEL key [key ...]
对于已经存在的键值设置过期时间,以秒为单位
创建时没有设置过期时间则一直存在,直到使用使用DEL移除
expire key seconds
查看有效时间,以秒为单位 ttl(time to live)
ttl key
list
列表的元素类型为string,按照插入顺序排序。
总结增删改查
增: 从左侧插入数据: lpush key value1 value2 ...
结果: [value2, value1]
从右侧插入数据: rpush key value1 value2 ...
结果: [value1, value2]
插入一个元素: linsert key before/after 现有元素 要插入的值
结果: 【1,2,aa, 3,4,5】
例: linsert mylist before 3 aa
删: lrem key count value
改: lset key 索引 value
示例: lset mylist 2 abc
查: lrange key start end
删除
将列表中前count次出现的值为value的元素移除
count大于0: 从头往尾移除
count小于0: 从尾往头移除
count = 0: 移除所有
lrem key count value
修改
设置指定索引位置的元素值
索引从左侧开始,第一个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后一个元素
lset key index value
获取
返回列表里指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
lrange key start stop
set
无序集合
元素为string类型
元素具有唯一性,不重复
说明:对于集合没有修改操作
增删查
增: sadd key member1 member2 ...
删: srem key member1 member2 ...
查: smembers key
zset
sorted set,有序集合
元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
说明:没有修改操作
增删查总结
增: zadd key score1 member1 score2 member2 ...
删: zrem key member1 member2 ...
zremrangebyscore key min max
查: zrange key start end
zrangebyscore key min max-- 获取权重满足条件的成员
zscore key member-- 获取成员的权重
hash
hash用于存储对象,对象的结构为属性、值。
值的类型为string。
ruiyang
{
"name": "ruiyang",
"age": 20,
"salary": 10000
}
增删改查
增/改:
hset key field value
hmset key field1 value1 field2 value2 ...
删: hdel key field1 field2 ..
查:
hget key field
hmget key field1 field2 ...
hkeys key-- 查看对象所有的属性
hvals key-- 查看对象所有的属性值
hlen key-- 查看hash中属性的个数