redis数据库在我们日常的运用中还是经常会设计到的,无论是用来做缓存还是做去重处理,都会设计到这种数据库的相关操作,那么接下来就一起来看一下redis数据的相关操作。
select (0-15):默认情况下是会包含16个数据库,然后可以用select关键字来选择其中的任何一个数据库来操作
命令 | 作用 |
keys * | 查看所有的key |
type key | 键的类型 |
exists key | 键是否存在 |
random key | 随机取出任意一个键 |
set key | 新建一个键并给键赋值 |
get key | 查看键对应的值 |
del key | 删除键 |
rename key | 重命名键 |
renamenx key | 重命名一个不会重复的键 |
move key 0 | 移动key到一个相应的库 |
ttl key(Pttl) | 查询生命周期(毫秒) |
expire key(Pexpire) | 设置键的生命周期 |
persist key | 键的永久生命周期 |
keys pattern(正则) | 根据情况查找对应的键 |
flushdb | 清空一个数据库(当前) |
以上是关于键的基本操作的几个命令,下面总结一下redis数据库关于各种数据类型的各种操作
1、字符串
set key value ex | px nx xx:给键赋值并设置生命周期,nx是不存在时,xx是必须存在这个键时才可以
mset:一次设置多个
mget:一个获取多个键的值
setrange key offset value:根据偏移量将原值替换掉
append key value:把value追加到原值上
getrange key start stop:获取字符串中【start stop】范围内的值
start>=length:返回空字符串
stop>=length:截取至字符串的结尾处
如果start的位置在stop的右边,则返回空字符串
getset key newvalue:获取并返回旧值,并赋值新的值
incrby key 5:增加5
decrby key 3:减少3
incrbyfloat key 0.5:增加0.5
setbit key offset 2:设置offset对应的二进制上的值
2、link链表结构(list)
lpush key value:把值插入到链表的头部
rpop key :返回并删除链表尾元素
lrange key start stop:取出链表中指定的数值
lpop key :返回并删除链表首元素
lrem key count value :从左边开始删除,count表示删除几个,value表示要删除的值或者元素
ltrim key start stop:从start开始截取,到stop结束,并将截取后的结果重新赋值给key,原值发生变化
lindex key index:返回索引对应的值
llen key:该键对应的值的长度
linsert key after|before search value:在找到的值前面或者后面插入值,直会对找到的第一个值进行操作
rpoplpush key1 key2 :将key1的右边第一个转移到key2的左边
brpop | blpop key timeout:等待弹出key的尾|头元素,timeout是等待超时时间,如果timeout为0,则是一直等待。
3、set集合数据结构
集合的特性:无序性、唯一性、确定性
sadd key value1 value2 :往集合中添加元素
srem key value1 value2:删除元素
spop key :返回并删除集合key中一个随机元素
srandmember key:返回集合key中一个随机元素
sismember key value:判断value是不是存在于key中,是的话返回1,否则返回2
smembers key:返回集合中的所有元素
scard key :返回集合中元素的个数
smove source dest value:把source中的元素删除并添加到dest集合中
sinter key1 key2 key3 :求出三个集合的交集并返回
sinterstore dest key1 key2 key3 :将三个集合的交集赋值给dest
sunion key1 key2 key3:求三个集合的并集
sdiff key1 key2 :key1 与key2的差集(即key1中存在,key2中不存在的值)
4、order set 有序集合
ps:括号内是指可选项
有序集合:声明集合的同时还要声明元素的权重(用于排序)
zadd key score1 value1 score2 value2 .。。。。:创建一个有序集合
zrem key value1 value2 :删除集合中的元素
zremrangebyscore key min max(limit offset N):按照score的值删除元素,删除score值在min和max之间的元素
zremrangebyrank key start end:按照排名删除元素,删除名次在[start end]之间的元素
zrank key member :查询member的排名
zrevrank key member:查询member的排名,降序排列
zrange key start stop (withscores):把集合排序后返回名词(start stop)的元素默认是升序排列,withscores是把score的值打印出来
zcard key:统计集合中的元素个数
zcount key min max:返回key里[min max]区间内的元素个数
zinterstore destination numkeys key1[key2.....] [weight][min |max|sum]:eg:zinterstore result 2 lisi wang aggregate sum
当然权重也是可以加上去的。
eg:zinterstore result 2 lisi wang weights 2 1 aggregate sum
设置权重以后,结果会是在没有权重的基础上乘以权重作为最后的结果
5、hash数据结构
hset key field value:把key中field域的值设为value,如果没有field,直接添加,如果有,则覆盖原来的值
hmset key field1 value1 field2 value2 field3 value3:一次性设置多个域的值
hget key field:返回key里域field的值
hmget key field1 field2 field3:一次获取多个域的值
hgetall key:一次性获取key里所有域的值
hlen key:返回key中元素的数量
hdel key field:删除key中field域
hexists key field :判断是不是存在某个域
hincrby key field value:是把key中field域的值增长整型值 value
hincrbyfloat key field value:是把key中field域的值增长浮点型值 value
hkeys key:返回所有的键
hvals key:返回所有的值
以上就是redis中关于各个类型的操作的命令,如果有没有总结到的,可以留言讨论。