Redis常用命令整理

  Redis常见情景下的操作命令都在这里了,做个笔记便于以后查找。

  一、基本操作命令

  redis默认为 16个库 默认自动使用 0号库

 

  1. 检测Redis服务运行是否正常

    

redis >ping  #返回 PONG,表示redis服务运行正常

 

  2.查看当前数据库中 key的数目:

   

dbsize

 

  3. 切换库命令:

    

redis> select dbNum  #例如:切换到5号数据库 则输入 select 5

 

  4.删除当前库的数据:

flushdb。

 

  5.redis自带的客户端退出当前redis连接 :

exit 或 quit

 

  二、 Key操作命令

  1. keys

  作用:查找所有符合模式pattern的key  pattern可以使用通配符

  通配符用法: 

    *: keys * 查询所有的key。

    ?: 表示单个字符  boo? 可以匹配到 boot book

 

  2.exists key[ key1 key2.....]

  作用:判断key是否存在 若存在 返回1 其他情况返回0

     exists 后边接多个key时候 返回检索到的key的数量

 

  3. expire key  seconds

  作用: 设置key的生存时间为seconds

      如 expire student 20 表示设置key为student的生存时间为20秒 超过20秒自动删除这个key

  

  4.ttl key

  作用: 以秒为单位 返回 key 的剩余生存时间

  返回值: -1:key永不过期  

      -2: key 不存在

      正整数: key 的剩余存在时间(秒)

  

  5. type key

  作用:查看key存储的数据类型 

 

  6. del key[key1 key2.....]

  删除key, 返回删除成功的个数

 

  三、 Redis数据操作命令

  

  1.字符串类型

  字符串类型是Redis中最基本的数据类型 它能存储包括二进制数据 序列化后的数据 以及JSON数据

    1) set

    将字符串值设置到key中

set key value

    2) get

    获取key中设置的字符串的值

get key

    3)incr 

    将 key中储存的数字值加1 如果key不存在 则会将key对应的值初始化为0 再执行incr操作

    (注 incr和decr只能对数字类型的数据进行操作)

 

incr key

    4)decr

    将 key中储存的数字值减1 如果key不存在 则会将key对应的值初始化为0 再执行decr操作

    5)append

append key value

 

    如果key存在 将 value追加到原来旧值的末尾

    如果key不存在 则创建这个key并将key的值设置为value

 

    5) strlen

strlen key

    作用: 返回key存储的字符串值的长度 若key不存在 则返回0

    

    6)getrange

getrange key start end

    获取key中字符串值从start开始到end结束的子字符串,包括start和end 负数表示从字符串末尾开始 -1表示最后一个字符

    

    7)setrange

setrange key offset value

    用value覆盖key存储的值中从offset开始的子串 返回修改后的字符串长度

例:

>set word good-mroinng  #先设置一个字符串
OK
>get word
“good-mroinng”
>setrange word 6 orning
(integer12
>get word
"good-morning"

    

    4)mset    

mset key value[key1 value1 key2 value2.....]

    同时设置一个或多个key和value

  

    5)mget

mget key[key1 key2....]

    获取一个或多个给定Key 的value key不存在时会返回(nil)

 

  2.hash类型

  redis has 是一个string类型的filed和value映射表 常用于存储对象

  注:这部分中的key表示哈希表的表名, field表示哈希表的键, value表示哈希表中键field对应的值

 

    1) hset

hset key filed value

    将名字为key的哈希表中filed的值设置为value 若filed已存在 则覆盖掉filed的旧值

 

    2) hget

hget key field

    获取名字为key的哈希表中field对应的值 值不存在则返回(nil)

 

    3) hmset 

hmset key filed value[field1 value1 field2 value2...]

     同时将多个filed和value设置到名字为key的哈希表中 若field存在 会覆盖掉旧值 若key不存在 则新建一个hash表执行hmset操作 

  

    4)hmget

hmget key field[field1 field2...]

    获取哈希表中一个或多个field对应的值 若值不存在则返回(nil)

 

    5) hgetall

hgetall key

    返回名字为key的哈希表内所有的field和value

    例:

> hgetall member  #获取哈希表member的全部数据
1) "name"  #第一个键
2)“xiaoming”  #name对应的值
3) "class"   #第二个键
4) "one"    #class对应的值

 

    6) hdel

hdel key field[field1 field2 field3.....]

    删除哈希表key中的一个或多个field 若field不存在则跳过这个field继续执行

 

    7) hkeys

hkeys key

    获取哈希表key中的所有field

    8) hvals

hvals key

    获取哈希表key中的所有value

    

    9) hexists

hexists key field

    查看名字为key的哈希表中是否存在给定的field

 

  3. 列表 list

  Redis列表是简单的字符串列表,按照插入的顺序排序,可以在列表的头部或尾部插入新的元素

    1) lpush

lpush key value[value1 value2...]

    将一个或多个value插入到列表key的头部(左边) 从左边开始加入 返回生成的新列表长度

    注意:由于是从左边插入 最先插入的数值在列表最右边 最后插入的值在列表最左边

  

    2) rpush

rpush key value[value1 value2...]

    将一个或多个value插入到列表key的尾部(右边) 从右边开始加入 返回生成的新列表长度

 

    3) lrange

lrange key start stop

    获取列表key 中指定区间[start, stop]内的元素,0表示列表的第一个元素,-1表示列表最后一个元素

    4) lindex

lindex key index

    获取列表key中下标为指定index的元素

 

    5) llen

llen key

    获取列表key的长度

 

    6) lrem

lrem key count value

    从列表key中移除列表中与value相等的元素, count为删除元素的个数,当count>0时,从左向右删除,当count<0时 从右向左删除

  

    7) lset

lset key index value

    将列表key中下标为index的元素的值设置为value

 

    8) linsert

insert key BEFORE posval value
insert key AFTER posval value

    将值value插入到列表key中位于posval之前(BEFORE)或之后(AFTER)的位置 

    若key不存在 则跳过这一命令 继续执行后边的操

    

   

    

  4. Set 集合

  Set是由String类型的元素构成的集合,集合中的成员不可重复

    1) sadd

sadd key member[member1 member2...]

      将一个或多个member加入到集合key中

  

    2) smembers

smembers key

    获取集合key中的所有成员元素

 

    3) sismember

sismember key member

    判断member是否属于集合key

 

    4) scard

scark key

    获取集合key中的元素个数

 

    5) srem

srem key member[member1 member2...]

    删除集合key中的一个或多个元素

 

    6) srandmember

srandmember key[count] 
  随机从集合key中返回count个成员元素 若不输入count 则默认返回一个元素

   7) spop
spop key[count]

    随机从集合中弹出count个元素,弹出的元素会从集合中删除并作为返回值返回,若不输入count 则默认返回一个元素

    

  5. 有序集合zset

  类似于java中的SortedSet, 会对成员按照每个元素的score值进行从小到大的排序

    1) zadd

zadd key score member[score1 member1 score2 member2...]

    将一个或多个member元素以及其score值加入到有序集合key中,若membenr存在 则更新其score。 score可以是整型或浮点型

  

    2) zrange  

zrang key start stop[withscores]

    查询有序集合key在指定区间[start ,stop]中的元素 按照score值从小到大排序。

    句尾可以添加withscores指令来使score和value一同返回

 

    3) zrevrange

zrevrange key start stop [withscores]

    返回有序集合key中指定区间内的成员 按照score值从大到小排序 。

    句尾可以添加withscores指令来使score和value一同返回

  

    4) zrem

zrem key member[member1 member2...]

    删除有序集合key中的一个或多个成员,若成员不存在 则跳过该成员继续执行操作

 

    5) zcard

zcard key

  

    6) zrangebyscore

zrangebyscore key min max [withscores] [limit offset count]

    获取有序集合key中,所有score的值在闭区间[min, max]内的成员 按照从小到大的顺序排序

    若要取开区间,只需在min或max前加上 "(", 如下:

zrangebyscore key (min (max [withscores] [limit offset count]

    使用-inf 和 +inf 表示有序集合中的最小值和最大值

    limit用来限制返回结果的数量和区间  offset表示查询的起始位置 count表示查询的数量

 

    7)zrevrangebyscore

zrevrangebyscore key (min (max [withscores] [limit offset count]

    获取有序集合key中,所有score的值在闭区间[min, max]内的成员 按照从大到小的顺序排序

    其他特性和zrangebyscore相同

 

    8)zcount

zcount key min max

 

    返回有序集合key中score位于闭区间[min, max]内的元素个数

 

   四、事务的操作指令

   Redis事务指一系列操作步骤的集合,Redis中的事务要么全部执行完毕,要么完全不执行。

          1. multi

              用于标记一个事务的开始,事务内的多条命令会按照先后顺序放到一个队列当中。

         2.exec

              执行所有事务块内的命令, 返回事务内执行语句内容,事务被打断时,会返回(nil)。

         3.discard

              取消事务,放弃执行事务块内的所有命令。

         4.watch

watch key[key1 key2...]

              监视一个或多个key,如果事务执行期间这个key被其他命令改动,将会打断这个事务的执行进程。

         5.unwatch

              取消watch命令对所有key的监视。

    

 

posted @ 2020-03-15 09:54  seizedays  阅读(966)  评论(0编辑  收藏  举报