Redis的基础命令

通用指令

keys *

用于查询当前数据库的键(key)

exists <key>

判断某个键(key)是否存在,返回1(存在)或0(不存在)

type <key>

查看某个键(key)所对应的值的类型

del <key>

删除某个键,返回1(成功)或0(失败)

expire <key> <seconds>

为某个键设置过期时间,单位为秒

setex <key> <过期时间> <value>

expire不同的是这是在创建键值对的时候就给它设置一个过期时间

ttl <key>

查看某个键剩余的时间或状态,返回-1表示永不过期-2表示已过期,其他表示剩余时间

dbsize

查看当前数据库的key的数量

Flushdb

清空当前数据库

Flushall

清空所有数据库

Multi,Exec,discard

Redis的事务

WATCH <key1> <key2> ....

在执行multi之前先执行该命令的haul可以监视一个或多个key,如果事务在执行时,这个或这几个key的值呗其他命令所改动,那么事务将被打断,返回nill(类似于null)

适合于String类型

set <key> <value>

添加一个键值对

get <key>

通过key查询对应键值

getset <key> <value>

通过key给value重新复制,并且返回原来的value

setnx <key> <value>

set <key> <value>的作用差不多,都是添加一对键值对,但是setnx·与set不同的地方是,·setnx· 设置的key必须是之前不存在的,否者会返回0

mset <key1> <value1> <key2> <value2>......

添加一个或多个键值对

mget <key1> <key2>......

通过一个或多个key获取一个或多个value

msetnx <key1> <value1> <key2> <value2>......

添加一个或多个键值对,但是msetnx 设置的key必须是之前不存在的,否者会返回0

append <key> <value>

通过key将给定value添加到原本value的末尾

strlen <key>

通过key获得value的长度

getrange <key> <起始位置> <结束位置>

通过key获取value的范围内的值,类似于java中String的substring方法,但效果不大一样

setrange <key> <起始位置> <值>

通过key用覆盖原本从起始位置开始的value

incr <key>

  1. 将key对应的value的值加1,但是如果value不是integer类型的话会报错
  2. 如果key对应的value的值为空,那value变为1

decr <key>

  1. 将key对应的value的值减1,但是如果value不是integer类型的话会报错
  2. 如果key对应的value的值为空,那value变为-1

incrby <key> <数字>

将key对应的value的值变为原本的value加数字的和,但是如果value不是integer类型的话会报错

decrby <key> <数字>

将key对应的value的值变为原本的value加数字的差,但是如果value不是integer类型的话会报错

适合于List类型

lindex <key> <index>

根据索引获取元素(从左到右)

lrange <key> <satrt> <stop>

按照索引范围获取元素(即从左到右获取)
查询开头到结尾lrange <key> 0 -1
查询结尾到开头lrange <key> -1 0
这是因为list的底层是一个双线链表,开头到结尾可以大概的理解为一个圈

llen <key>

获取list的value个数

lpush/rpush <key> <value1> <value2>

从左边/右边插入一个或多个值(也是一个一个的加),成功的话返回当前这个key对应的value个数
案例示范

lpush test 1 2 3 4 5
rpush test a b c d e

实际上存储的是54321abcde

lpop/rpop <key>

从左边/右边吐出一个值
注意:只要value未空,那key就存在,同样,value空了key也就不存在了

rpoplpop <key1> <key2>

key1的值得右边吐出来一个值添加到key2的值的左边

linsert <key> befor/after <value> <newvalue>

key的list中,value的前面或后面插入newvalue

lrem <key> <n> <value>

从删除nvalue
注意

  1. 应为list是允许重复的,lrem就是来专门删除这些重复数据的
  2. n可正可负,正数代表从左往右删起,负数从右往左删起,0代表删除所有

适用为set

sadd <key> <value1> <value2>

将一个或多个value添加入key对应的集合中,已存在的value将会被忽略

smembers <key>

获取该集合的所有值

sismember <key> <value>

判断key所对应的集合是否含有这个value,有返回1,无返回0

scard <key>

返回key对应集合的元素个数

srem <key> <value1> <value2>

删除一个或多个key对应的集合中value

spop <key>

随机从该集合中弹出一个值

srandmember <key> <n>

随机取出key对应的n个value,而且不会像spop命令一样删除value,取出的值仍在key对应的集合中

sinter <key1> <key2>

返回key1和key2对应集合元素的交集,及返回两个集合共同的元素

sunion <key1> <key2>

返回key1和key2对应集合元素的并集,及返回两个集合所有并去重复的元素

sdiff <key1> <key2>

返回key1和key2对应集合元素的差集,返回key1对应的集合元素减去key1与key2的交集

适用于hash类型

hset <key> <field> <value>

给键为key的集合中定域为field赋值为value

hsetnx <key> <field> <value>

和上面的hset功能差不多,但是hsetnx只有当定域field不存在时才会成功

hget <key> <field>

获取键为key的集合中定域为field对应值

hmset <key1> <field1> <value1> <field2> <value2> ......

批量设置hash的值

hexists <key> <field>

查看键值为key的集合中定域为field是否存在,存在返回1,不存在返回0

hvals <key>

列出键值为key的集合中所有的value,显示的格式为:一行定域,一行值

hincrby <key> <field> <increment>

在键值为key的集合中定域为field的进行加法,注意没有减法的命令,如果想要进行减法加一个负数即可,该命令会返回运算结果

适用于zset类型

zadd <key> <score1> <value1> <score2> <value2>

将一个或多个member元素及其评分score写入有序集合中

  1. 如果存在相同value且分数不同时,会替换到分数score
  2. 如果存在相同分数且value不同时,会正常添加

zrange <key> <start> <stop> [WITHSCORES]

  1. 返回键值为key的有序集合中下标在startstop之间的元素
  2. 查询所有zrange <key> 0 -1
  3. 如果添加[WITHSCORES]的haul会让分数和值一起返回

zrangebyscore <key> <min> <max> [WITHSCORES] [limit offset count]

  1. 返回键值为key的有序集合中分数在minmax之间的元素(包括分数为min和max的元素)
  2. 显示的时候从小到大排序
  3. 如果添加[WITHSCORES]的haul会让分数和值一起返回
  4. 如果添加[limit offset count] 可以指定返回结果的数量及区间

zrevrangebyscore <key> <max> <min> [WITHSCORES] [limit offset count]

和上面zrangebyscore的作用差不多,但是zrevrangebyscore是从大到下,而zrangebyscore是从小到大

zincrby <key> <increment> <value>

给键值为key的集合中值为value的分数score真假加increment

zrem <key> <value>

删除键值为key的集合中值为value的这个元素

zcount <key> <min> <max>

统计键值为key的集合分数score在minmax之间的元素个数

zrank <key> <value>

返回集合中的排名,从0开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值