Redis常用命令(二,共三篇)

目录

1、redis中有关key的操作命令:   

a)查看数据库中的key:keys pattern                                                     |->*:匹配0个或者多个字符                                                     |->?: 匹配1个字符                                                     |->[]:匹配[]里边的1个字符

b)判断key在数据库中是否存在:

c)移动指定key到指定的数据库实例:move key index

d)查看指定key的剩余生存时间:ttl key                                                        |->如果key没有设置生存时间,返回-1                                                        |->如果key不存在,返回-2

e)设置key的最大生存时间:expire key seconds

f)查看指定key的数据类型:type key

g)重命名key: rename key newkey

h)删除指定的key:del key [key key .....]                                    |->返回值是实际删除的key的数量

 2、redis中有关string类型数据的操作命令:   

a)将string类型的数据设置到redis中:set 键 值

b)从redis中获取string类型的数据:get 键

c)追加字符串:append key value         |->返回追加之后的字符串长度        |->如果key不存在,则新创建一个key,并且把value值设置为value。

d)获取字符串数据的长度:strlen key

e)将字符串数值进行加1运算:incr key                   |->返回加1运算之后的数据                   |->如果key不存在,首先设置一个key,值初始化为0,然后进行incr运算。                   |->要求key所表示value必须是数值,否则,报错

f)将字符串数值进行减1运算:decr key   |->返回减1运算之后的数据   |->如果key不存在,首先设置一个key,值初始化为0,然后进行decr运算。   |->要求key所表示value必须是数值,否则,报错      

g)将字符串数值进行加offset运算:incrby key offset    |->返回加offset运算之后的数据    |->如果key不存在,首先设置一个key,值初始化为0,然后进行incrby运算。    |->要求key所表示value必须是数值,否则,报错

h)将字符串数值进行减offset运算:decrby key offset    |->返回减offset运算之后的数据    |->如果key不存在,首先设置一个key,值初始化为0,然后进行decrby运算。    ->要求key所表示value必须是数值,否则,报错

i)闭区间获取字符串key中从startIndex到endIndex的字符组成的子字符串:getrange key startIndex endIndex |->下标自左至右,从0开始,依次往后,最后一个字符的下标是字符串长多-1; |->字符串中每一个下标也可以是负数,负下标表示自右至左,从-1开始,依次往前,最右边一个字符的下标是-1

j)用value覆盖从下标为startIndex开始的字符串,能覆盖几个字符就覆盖几个字符:setrange key startIndex value

k)设置字符串数据的同时,设置它最大生命周期:setex key seconds value

l)设置string类型的数据value到redis数据库中,当key不存在时设置成功,否则,则放弃设置:setnx key value

m)批量将string类型的数据设置到redis中:mset 键1 值1 键2 值2 .....

n)批量从redis中获取string类型的数据:mget 键1 键2 键3.....

o)批量设置string类型的数据value到redis数据库中,当所有key都不存在时设置成功,否则(只要有一个已经存在),则全部放弃设置:msetnx 键1 值1 键2 值2 .....

3、redis中有关list类型数据的操作命令:

a)将一个或者多个值依次插入到列表的表头(左侧):lpush key value [value value .....]

b)获取指定列表中指定下标区间的元素:lrange key startIndex endIndex

c)将一个或者多个值依次插入到列表的表尾(右侧):rpush key value [value value .....]

d)从指定列表中移除并且返回表头元素:lpop key

e)从指定列表中移除并且返回表尾元素:rpop key

 f)获取指定列表中指定下标的元素:lindex key index

g)获取指定列表的长度:llen key

 h)根据count值移除指定列表中跟value相等的数据:lrem key count value |->count>0:从列表的左侧移除count个跟value相等的数据;|->count<0:从列表的右侧移除count个跟vlaue相等的数据;|->count=0:从列表中移除所有跟value相等的数据

i)截取指定列表中指定下标区间的元素组成新的列表,并且赋值给key:ltrim key startIndex endIndex

j)将指定列表中指定下标的元素设置为指定值: lset key index value

l)将value插入到指定列表中位于pivot元素之前/之后的位置: linsert key before/after pivot vlaue

4、redis中有关set类型数据的操作命令:

a)将一个或者多个元素添加到指定的集合中:sadd key value [value value ....]

b)获取指定集合中所有的元素:smembers key

 c)判断指定元素在指定集合中是否存在:sismember key member

d)获取指定集合的长度:scard key

 e)移除指定集合中一个或者多个元素:srem key member [member .....]

f)随机获取指定集合中的一个或者多个元素:srandmember key [count]|->count>0:随机获取的多个元素之间不能重复 |->count<0: 随机获取的多个元素之间可能重复

g)从指定集合中随机移除一个或者多个元素:spop key [count]

h)将指定集合中的指定元素移动到另一个元素:smove source dest member

i)获取第一个集合中有、但是其它集合中都没有的元素组成的新集合:sdiff key key [key key ....]

j)获取所有指定集合中都有的元素组成的新集合:sinter key key [key key ....]

k)获取所有指定集合中所有元素组成的大集合:sunion key key [key key .....]

5、redis中有关hash类型数据的操作命令:

a)将一个或者多个field-vlaue对设置到哈希表中:hset key filed1 value1 [field2 value2 ....]

b)获取指定哈希表中指定field的值:hget key field

c)批量将多个field-value对设置到哈希表中: hmset key filed1 value1 [field2 value2 ....]

d)批量获取指定哈希表中的field的值:hmget key field1 [field2 field3 ....]

e)获取指定哈希表中所有的field和value:hgetall key

f)从指定哈希表中删除一个或者多个field:hdel key field1 [field2 field3 ....]

g)获取指定哈希表中所有的filed个数:hlen key

h)判断指定哈希表中是否存在某一个field:hexists key field

 i)获取指定哈希表中所有的field列表:hkeys key

 j)获取指定哈希表中所有的value列表:hvals key

k)对指定哈希表中指定field值进行整数加法运算:hincrby key field int

l)对指定哈希表中指定field值进行浮点数加法运算:hincrbyfloat key field float

 m)将一个field-vlaue对设置到哈希表中,当key-field已经存在时,则放弃设置;否则,设置file-value:hsetnx key field value

6、redis中有关zset类型数据的操作命令:有序集合                        

 a)将一个或者多个member及其score值加入有序集合:zadd key score member [score member ....]

 b)获取指定有序集合中指定下标区间的元素:zrange key startIndex endIndex [withscores]

c)获取指定有序集合中指定分数区间(闭区间)的元素:zrangebyscore key min max [withscores]

d)删除指定有序集合中一个或者多个元素:zrem key member [member......]

 e)获取指定有序集合中所有元素的个数:zcard key

f)获取指定有序集合中分数在指定区间内的元素的个数:zcount key min max

g)获取指定有序集合中指定元素的排名(排名从0开始): zrank key member

h)获取指定有序集合中指定元素的分数:zscore key member

 i)获取指定有序集合中指定元素的排名(按照分数从大到小的排名):zrevrank key member


1、redis中有关key的操作命令:   

a)查看数据库中的key:keys pattern
                                                     |->*:匹配0个或者多个字符
                                                     |->?: 匹配1个字符
                                                     |->[]:匹配[]里边的1个字符

     keys *:查看数据库中所有的key
     keys k*:查看数据库中所有以k开头的key
     keys h*o:查看数据库中所有以h开头、以o结尾的key
     keys h?o: 查看数据库中所有以h开头、以o结尾的、并且中间只有一个字符的key
     keys h[abc]llo:查看数据库中所有以h开头以llo结尾,并且h后边只能取abc中的一个字符的key
      

b)判断key在数据库中是否存在:

exists key 如果存在,则返回1;如果不存在,则返回0
exists key [key key ....] 返回值是存在的key的数量
         exists k1
         exists k1 k2 k3 hello
      

c)移动指定key到指定的数据库实例:move key index

         move k 1
      

d)查看指定key的剩余生存时间:ttl key
                                                        |->如果key没有设置生存时间,返回-1
                                                        |->如果key不存在,返回-2

     ttl k1
     ttl k2
      

e)设置key的最大生存时间:expire key seconds

         expire k2 20
      

f)查看指定key的数据类型:type key

         type k1
      

g)重命名key: rename key newkey

         rename hello k2
      

h)删除指定的key:del key [key key .....]
                                    |->返回值是实际删除的key的数量

      del k1 k2 k3 k4


 2、redis中有关string类型数据的操作命令:   

a)将string类型的数据设置到redis中:set 键 值

     set zsname zhangsan
     set zsage 20
     set totalRows 100
     set zsage 30 如果key已经存在,则后来的value会把以前的value覆盖掉.

b)从redis中获取string类型的数据:get 键

     get zsname
     get zsage
     get totalRows
      

c)追加字符串:append key value
         |->返回追加之后的字符串长度
        |->如果key不存在,则新创建一个key,并且把value值设置为value。

     set phone 1389999
     append phone 8888
      

d)获取字符串数据的长度:strlen key

         strlen phone
      

e)将字符串数值进行加1运算:incr key
                   |->返回加1运算之后的数据
                   |->如果key不存在,首先设置一个key,值初始化为0,然后进行incr运算。
                   |->要求key所表示value必须是数值,否则,报错

incr zsage
incr age
incr zsname  报错
      

f)将字符串数值进行减1运算:decr key
   |->返回减1运算之后的数据
   |->如果key不存在,首先设置一个key,值初始化为0,然后进行decr运算。
   |->要求key所表示value必须是数值,否则,报错
      

g)将字符串数值进行加offset运算:incrby key offset
    |->返回加offset运算之后的数据
    |->如果key不存在,首先设置一个key,值初始化为0,然后进行incrby运算。
    |->要求key所表示value必须是数值,否则,报错

         incrby zsage 10
      

h)将字符串数值进行减offset运算:decrby key offset
    |->返回减offset运算之后的数据
    |->如果key不存在,首先设置一个key,值初始化为0,然后进行decrby运算。
    ->要求key所表示value必须是数值,否则,报错

         decrby zsage 10
      

i)闭区间获取字符串key中从startIndex到endIndex的字符组成的子字符串:getrange key startIndex endIndex
 |->下标自左至右,从0开始,依次往后,最后一个字符的下标是字符串长多-1;
 |->字符串中每一个下标也可以是负数,负下标表示自右至左,从-1开始,依次往前,最右边一个字符的下标是-1

zhangsan
getrange zsname 2 5  angs
getrange zsname 2 -3 angs
getrange zsname 0 -1 zhangsan

j)用value覆盖从下标为startIndex开始的字符串,能覆盖几个字符就覆盖几个字符:setrange key startIndex value

setrange zsname 5 xiaosan   //zhangxiaosan
setrange zsname 5 lao       //zhanglaoosan
      

k)设置字符串数据的同时,设置它最大生命周期:setex key seconds value

         setex k1 20 v1
      

l)设置string类型的数据value到redis数据库中,当key不存在时设置成功,否则,则放弃设置:setnx key value

         setnx zsage 20
      

m)批量将string类型的数据设置到redis中:mset 键1 值1 键2 值2 .....

         mset k1 v1 k2 v2 k3 v3 k4 v4 k5 v5
      

n)批量从redis中获取string类型的数据:mget 键1 键2 键3.....

         mget k1 k2 k3 k4 k5 k6 zsname zs age totalRows
      

o)批量设置string类型的数据value到redis数据库中,当所有key都不存在时设置成功,否则(只要有一个已经存在),则全部放弃设置:msetnx 键1 值1 键2 值2 .....

         msetnx kk1 vv1 kk2 vv2 kk3 vv3 k1 v1


3、redis中有关list类型数据的操作命令:

单key-多有序value, 一个key对应多个value;
多个value之间有顺序,最左侧是表头,最右侧是表尾;
每一个元素都有下标,表头元素的下标是0,依次往后排序,最后一个元素下标是列表长度-1;
每一个元素的下标又可以用负数表示,负下标表示从表尾计算,最后一个元素下标用-1表示;
元素在列表中的顺序或者下标由放入的顺序来决定。
通过key和下标来操作数据。
    

a)将一个或者多个值依次插入到列表的表头(左侧):lpush key value [value value .....]

       lpush list01 1 2 3  结果:3 2 1
       lpush list01 4 5     结果:5 4 3 2 1
       

b)获取指定列表中指定下标区间的元素:lrange key startIndex endIndex

       lrange list01 1 3  结果:4 3 2
       lrange list01 1 -2 结果: 4 3 2
       lrange list01 0 -1 结果:5 4 3 2 1
    

c)将一个或者多个值依次插入到列表的表尾(右侧):rpush key value [value value .....]

       rpush list02 a b c 结果:a b c
       rpush list02 d e   结果:a b c d e
       lpush list02 m n   结果: n m a b c d e
    

d)从指定列表中移除并且返回表头元素:lpop key

        lpop list02
    

e)从指定列表中移除并且返回表尾元素:rpop key

        rpop list02
  

 f)获取指定列表中指定下标的元素:lindex key index

       lindex list01 2 结果:3
    

g)获取指定列表的长度:llen key

       llen list01
  

 h)根据count值移除指定列表中跟value相等的数据:lrem key count value
 |->count>0:从列表的左侧移除count个跟value相等的数据;
|->count<0:从列表的右侧移除count个跟vlaue相等的数据;
|->count=0:从列表中移除所有跟value相等的数据

lpush list03 a a b c a d e a b b  结果:b b a e d a c b a a
 lrem list03 2 a  结果:b b e d c b a a
lrem list03 -1 a 结果:b b e d c b a
 lrem list03 0 a  结果:b b e d c b
    

i)截取指定列表中指定下标区间的元素组成新的列表,并且赋值给key:ltrim key startIndex endIndex

lpush list04 1 2 3 4 5  结果:5 4 3 2 1
ltrim list04 1 3
lrange list04 0 -1      结果:4 3 2
        

j)将指定列表中指定下标的元素设置为指定值: lset key index value

lset list04 1 10
        

l)将value插入到指定列表中位于pivot元素之前/之后的位置: linsert key before/after pivot vlaue

       linsert list04 before 10 50
       linsert list04 after 10 60


4、redis中有关set类型数据的操作命令:

单key-多无序value
一个key对应多个vlaue;
value之间没有顺序,并且不能重复;
通过业务数据直接操作集合。
    

a)将一个或者多个元素添加到指定的集合中:sadd key value [value value ....]

      *如果元素已经存在,则会忽略。
      *返回成功加入的元素的个数
      sadd set01 a b c a  结果:a b c
      sadd set01 b d e
    

b)获取指定集合中所有的元素:smembers key

      smembers set01
  

 c)判断指定元素在指定集合中是否存在:sismember key member

      *存在,返回1
      *不存在,返回0
      sismember set01 f
      sismember set01 a
    

d)获取指定集合的长度:scard key

      scard set01
  

 e)移除指定集合中一个或者多个元素:srem key member [member .....]

      *不存在的元素会被忽略
      *返回成功成功移除的个数
      srem set01 b d m
    

f)随机获取指定集合中的一个或者多个元素:srandmember key [count]
|->count>0:随机获取的多个元素之间不能重复
 |->count<0: 随机获取的多个元素之间可能重复

sadd set02 1 2 3 4 5 6 7 8
srandmember set02
 srandmember set02 3
srandmember set02 -3
    

g)从指定集合中随机移除一个或者多个元素:spop key [count]

      spop set02
    

h)将指定集合中的指定元素移动到另一个元素:smove source dest member

      smove set01 set02 a
    

i)获取第一个集合中有、但是其它集合中都没有的元素组成的新集合:sdiff key key [key key ....]

      sdiff set01 set02 set03
    

j)获取所有指定集合中都有的元素组成的新集合:sinter key key [key key ....]

      sinter set01 set02 set03
    

k)获取所有指定集合中所有元素组成的大集合:sunion key key [key key .....]

      sunion set01 set02 set03


5、redis中有关hash类型数据的操作命令:

单key:field-value
  field-value
.....
studentzs:id-1001
name-zhangsan
age-20
    

a)将一个或者多个field-vlaue对设置到哈希表中:hset key filed1 value1 [field2 value2 ....]

      *如果key field已经存在,把value会把以前的值覆盖掉
      hset stu1001 id 1001
      hset stu1001 name zhangsan age 20
    

b)获取指定哈希表中指定field的值:hget key field

      hget stu1001 id
      hget stu1001 name
    

c)批量将多个field-value对设置到哈希表中: hmset key filed1 value1 [field2 value2 ....]

      hmset stu1002 id 1002 name lisi age 20
    

d)批量获取指定哈希表中的field的值:hmget key field1 [field2 field3 ....]

      hmget stu1001 id name age
    

e)获取指定哈希表中所有的field和value:hgetall key

      hgetall stu1002
    

f)从指定哈希表中删除一个或者多个field:hdel key field1 [field2 field3 ....]

      hdel stu1002 name age
    

g)获取指定哈希表中所有的filed个数:hlen key

      hlen stu1001
      hlen stu1002
    

h)判断指定哈希表中是否存在某一个field:hexists key field

      hexists stu1001 name
      hexists stu1002 name
  

 i)获取指定哈希表中所有的field列表:hkeys key

      hkeys stu1001
      hkeys stu1002
  

 j)获取指定哈希表中所有的value列表:hvals key

      hvals stu1001
      hvals stu1002
    

k)对指定哈希表中指定field值进行整数加法运算:hincrby key field int

      hincrby stu1001 age 5
    

l)对指定哈希表中指定field值进行浮点数加法运算:hincrbyfloat key field float

      hset stu1001 score 80.5
      hincrbyfloat stu1001 score 5.5
  

 m)将一个field-vlaue对设置到哈希表中,当key-field已经存在时,则放弃设置;否则,设置file-value:hsetnx key field value

      hsetnx stu1001 age 30


6、redis中有关zset类型数据的操作命令:有序集合
                        

本质上是集合,所有元素不能重复;
每一个元素都关联一个分数,redis会根据分数对元素进行自动排序;
分数可以重复;
既然有序集合中每一个元素都有顺序,那么也都有下标;
有序集合中元素的排序规则又列表中元素的排序规则不一样。
  

 a)将一个或者多个member及其score值加入有序集合:zadd key score member [score member ....]

      *如果元素已经存在,则把分数覆盖
      zadd zset01 20 z1 30 z2 50 z3 40 z4
      zadd zset01 60 z2
  

 b)获取指定有序集合中指定下标区间的元素:zrange key startIndex endIndex [withscores]

          zrange zset01 0 -1
      zrange zset01 0 -1 withscores
    

c)获取指定有序集合中指定分数区间(闭区间)的元素:zrangebyscore key min max [withscores]

      zrangebyscore zset01 30 50 withscores
       

d)删除指定有序集合中一个或者多个元素:zrem key member [member......]

      zrem zset01 z3 z4
  

 e)获取指定有序集合中所有元素的个数:zcard key

      zcard zset01
    

f)获取指定有序集合中分数在指定区间内的元素的个数:zcount key min max

          zcount zset01 20 50
    

g)获取指定有序集合中指定元素的排名(排名从0开始): zrank key member

      zrank zset01 z4  ===>2
    

h)获取指定有序集合中指定元素的分数:zscore key member

      zscore zset01 z4
  

 i)获取指定有序集合中指定元素的排名(按照分数从大到小的排名):zrevrank key member

      zrevrank zset01 z4  ===>1


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

91科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值