Redis基本操作
title: Redis基本操作
categories: [Redis]
tags: [数据库]
date: 2020/01/06
作者:hackett
微信公众号:加班猿
一、redis基本数据类型
-
redis保存的数据都是按照键值对来保存
-
键(key)
-
值(value)
-
键的数据类型都是字符串
-
值的类型有以下五种:
-
字符串(string)
-
哈希(hash)
-
列表(list)
-
无序集合(set)
-
有序集合(zset)
-
二、字符串(string)
添加修改字符串
-
set 键 值
-
如果键不存在,就是添加
-
如果键存在,就是修改
-
set user tom
# 添加一个键user值为tom
set user hackett
# 把user的值改为hackett
-
setex 键 过期时间 值
-
过期时间单位为秒
-
setex user 5 jerry
# 添加一个键user值为jerry,过期时间为5秒
-
添加多个键值对 -- mset 键1 值1 键2 值2 键3 值3 ......
mset user1 tom user2 hackett user3 jerry
# 同时添加3个键值对
-
已有值后面追加 -- append 键 值
append user1 haha
# 向user1中追加值 haha
获取值
-
get 键
get user
# 获取user的值
-
mget 键1 键2 键3 ......
mget user1 user2 user3
# 获取3个键的值
删除键
-
del 键1 键2 键3
del user1 user2 user3
# 删除3个键
三、键命令
查找键
-
keys 键名
-
可以支持 *
keys user1
# 查看键user1是否存在
keys *
# 查看所有键
判断键是否存在
-
exists 键
-
如果存在,返回1
-
如果不存在,返回0
exists user1 # 判断user1是否存在
查看对应键的value类型
-
type 键
type user1 # 查看user1对应的值的类型
设置已有键的过期时间
-
expire 键 秒数
expire user1 5 # 设置user1的过期时间为5s
查看键过期时间
-
ttl 键
-
返回0,代表有效时间,单位:秒
-
返回-1,代表永远有效
-
返回-2,代表键不存在
ttl key # 查看key的有效时间
四、哈希hash
添加值
-
hset 键 字段 值
hset user1 name tom # 增加一个hash类型的键值对,字段为name,值为tom
添加多个值
-
hmset 键 字段1 值1 字段2 值2 ......
hmset user2 name jerry sex female # 添加user2的键,字段有两个
获取字段
-
hkeys 键
-
获取制定键的所有字段名
hkeys user2 # 获取键user2的所有字段
获取字段对应的值
-
hget 键 字段
hget user2 sex # 获取user2键字段sex的值
获取多个字段的值
-
hmget 键 字段1 字段2
hmget user2 name sex # 获取user2键字段name,sex的值
获取键所有字段的值
-
hvals 键
hvals user2 # 获取user2所有字段的值
获取键所有字段和值
-
hgetall 键
hgetall user2 # 获取user2的字段和值
删除字段
-
hdel 键 字段
hdel user2 sex # 删除user2的sex字段
删除键
-
hdel 键
hdel user2 # 删除user2的键
五、列表list
添加值
-
lpush 键 值1 值2 ......
-
从列表左侧添加值
lpush luser1 tom # 新建一个luser1的键,在左侧添加tom的值 值:tom
-
rpush 键 值1 值2 ......
-
从列表右侧添加值
rpush luser1 jerry # 新建一个luser1的键,在右侧添加tom的值 值:tomjerry
插入值
-
linsert 键 before 或者 after 值 新值
-
在制定的值前面或者后面插入新值
linsert luser1 before jerry 11 # 在jerry前面插入新值11 值:tom11jerry linsert luser1 after jerry 22 # 在jerry后面插入新值22 值:tom11jerry22
获取
-
lrange 键 start stop (返回列表里指定范围的值)
-
索引从左侧开始,第一个值的索引为0
-
索引可以是负数,表示从尾部开始计数,如:-1代表最后一个值,-2代表倒数第二个值
-
start,stop为要获取值的索引
lrange luser1 0 -1 # 获取开始到结尾的值 lrange luser1 2 -1 # 获取从第三个到最后的值
修改
-
lset 键 索引 值
-
改指定索引的值
lset luser1 1 haha # 把第二个元素的值改为haha
删除值
-
lrem 键 count 值
-
count = 0 删除指定的所有值
-
count < 0 删除从右往左指定数量的值
-
count > 0 删除从左往右指定数量的值
lrem luser2 -1 h0 # 从后往前/从右往左,删除第一个h0 lrem luser2 0 h0 # 删除所有的h0
六、无序集合set
添加值
-
sadd 键 值1 值2 值3 ......
sadd suser aa bb cc # 给键suser添加三个值
获取值
-
smembers 键
-
获取集合的值
smembers suser # 获取键suser所有的值
删除值
-
srem 键 值
-
删除指定的值
srem suser aa # 删除键suser的值aa
七、有序集合zset
添加值
-
zadd 键 score1 值1 score2 值2
-
添加值
zadd zuser 1 aa 3 bb 2 cc 5 dd # 给键zuser添加4个值,并按照score从小到大自动排序 值:aaccbbdd
获取值
-
zrange 键 start stop [withscores]
-
start 从 0开始
-
最后一个索引为-1
-
withscores代表同时获取score
zrange zuser 0 -1 withscores # 获取键zuser的所有值
通过score获取值
-
zrangebyscore 键 min max
-
min代表score起始值
-
max代表score结束值
zrangebyscore zuser 2 6 # 获取score从2到6的值
通过值获取score
-
zscore 键 值
-
得到指定值的score
zscore zuser dd # 得到值dd的score
删除
-
zrem 键 值
-
删除指定的值
zrem zuser dd # 删除值dd
通过score删除值
-
zremrangebyscore 键 min max
-
min是要删除score的最小值
-
max是要删除score的最大值
zremrangebyscore zuser 0 10 # 删除score从0到10到值
如果你觉得文章还不错,记得"点赞关注"
关注我的微信公众号【 加班猿 】可以获取更多内容