zoukankan      html  css  js  c++  java
  • Redis命令操作简介及五种value数据类型

    转自:https://blog.csdn.net/ty4315/article/details/52050721

    Redis是使用键值存储数据,key必须是字符串value支持五种数据类型,最新版本又新增加了两种这里暂不介绍。下面会介绍redis的一些基本命令的使用。

    首先启动redis并登录客户端。

     

    Redis中的命令不区分大小写。

    一:基本命令及string类型

    1:help set

    帮助命令

    2:select 1

       Redis默认有16个库通过select命令切换,库之间隔离默认登录0号库

    3:del a

       删除key a

    4:keys *  key a*

    查询库中已存在的key

    5:exists a

       查看当前库中是否存在keya,存在返回1

    6:set a 1

       Key:a  value:1

    7:get a

       查看key为a的value值

    8:mset a 1 b 2

       一次创建多个key

    9:mget a b

       一次查看多个key

    10:append a x

       向key中追加字符串

    11:strlen a

       返回key a 的长度

    12:incr b;key b的value加1

    decr b; key b的value减1

    incrby b 2; key b的value按步长加

    decrby b 2; key b的value按步长减

    incrbyfloat b 0.9; key b的value加0.9

    incrbyfloat b -0.9; key b的value减0.9

    此命令要求value的值可以进行加减运算

    二:hash类型

      Hash类型的key为字符串value为key:value且value只能为字符串。格式<string:<string:string>>,关键字h。

    13:hset user_01 namejack

       创建键user_01,value为<name:jack>

    14:hget user_01 name

       查看键user_01,value中key为name的值

    15:hmset user_01 nametom age 10

       一条命令创建多个

    16:hmget user_01 nameage

       一条命令查看多个

    17:hexists user_01 name

       查看键user_01中key为name的value

    18:hdel user_01 name

       删除键user_01中key为name

    19:hiincrby user_01 age2

       键user_01种key为age的按步长增加,也可负数减

    20:hkeys user_01

       显示键user_01中所有的key

    21:hvals user_01

       显示键user_01中所有的value

    22:hlen user_01

       显示键user_01中key的个数

    23:hgetall user_01

       显示键user_01中所有的键值对

    三:List类型

       List类型是有序的采用双向链表LinkedList实现,访问两边数据快中间慢,最多可以有2的32次方-1个元素。格式<string,<string,string,…>>,关键字l。

    24:lpush list1 a b c

       创建键为list1,value为a,b,c。顺序是从左向右开始添加,所以执行lrange list1 0 -1输出是c b a

    25:lrange list1  0 -1

       查看键list1全部元素

    26:lindex list1 0

       查看键list1中下标为0的元素

    27:lset list1 0 xx

       更改键list1中下标为0 的元素

    28:llen list1

       显示键list1的长度,元素个数

    29:lpop list1

       返回并删除键list1中最左边的value

    30:rpop list1

       返回并删除键list1中最右边的value

      pop让我想起python中列表和字典也有类似的方法功能也相近

    31:ltrim list1 0 4

       按下标截取键list1中的元素,下标如果都超出实际范围则list1被删除

    四:set类型

       Set数据类型不重复,无序,最多可以有2的32次方-1个元素,关键字s。

    32:sadd set1 a b c d

       创建键set1,value为字符串a,b,c,d

    33:smembers set1

       查看键set1

    34:sismember set1 a

       查看键set1中是否含有字符串a

    35:srem set1 a

       删除键set1中的字符串a

    36:spop set1

       随机删除键set1中的一个元素

    37:scard  set1

       显示键set1中的元素个数

    38:sdiff set1 set2

       显示set1中元素不存在于set2中的元素

    39:sinter set1 set2

       显示set1与set2的交集

    40:sunion set1 set2

       显示set1和set2的并集

    41:sinterstore  set3  set1  set2

       将set1和set2的交集存入set3中

      注:sdiff,sinter,sunion会影响性能,最后将结果存起来。

    五:sorted set类型

        Sorted set是在set的基础上增加一个分值并根据这个分值进行排序,关键字z。

        我们可以改变元素的分值以便于调整元素位置

        它比list更耗内存

        使用散列表读取中间数据速度快

        若元素的分值一样则按照ASCII的顺序排列

    42:zadd  zset1 1 a 2 b

        创建zset1,元素a的分值为1元素b的分值为2

    43:zscore zset1 a

        查看zset1中元素a的分值

    44:zrange zset1  0 10

        查看zset1中,按下标0到10查看

    45:zrevrange  zset1 0 -1

        查看zset1中元素,倒序。

    46:zincrby zset1 1 a

        元素a的分值增加1,负数时为减少

    47:zcount zet1 0 4

        返回zset1中分值0到4的元素的个数

    48:zcard  zset1

        返回zset1中元素个数

    49:zrem  zset1 a

         删除zset1中的元素a

    50:zrangebyscore  zset1 0 4

          显示zset1中分值大于等0小于等于4的元素

            zrangebyscore  zset1 0 (4

           显示zset1中分值大于等0小于4的元素

    51:zadd  zset1 +inf n

           增加n元素分值正无穷

           Zadd  zset1 –inf m

           增加m元素分值负无穷

    52:zrangebyLex  zset1 [a  [wangww

            若zset1中的分值都一样则可使用此命令按照元素名称的顺序显示。此命令需2.8.9版本以上

             zrangebyLex  zset1 [a  [wangww

            显示元素名称大于等于a 小于等于wangwu的元素,值中[表示大于等于  (表示大于

    53:zrank zset1 a

          显示zset1中a的下标

    六:键的生存时间

    54:expire name 10

          expire可以设置一个key的有效时间,生存时间单位是秒。

    55:ttl name

         ttl是查看key还剩下多少有效时间,默认是永久有效返回-1,当超过有效时间后返回-2。

    56:persist name

         Persist命令可以取消一个key的剩余时间使之成为永久有效

    57:expireat name 1471849200

         Expireat可以指定一个key在什么时间失效,另外我们可以在linux下使用date来得到一个时间点

         [root@hadoop0~]# date +%s

         1469881946

         [root@hadoop0~]# date --date="2016-08-22" +%s

         1471849200

         实际工作中可以用来实现手机验证码,电商秒杀,游戏排行榜等功能,指定剩余有效时间。

    七:其它命令

    58:type name

          查看key值的类型

    59:brpop key1 key2 3

        从key1开始取值

    60:publish subscribe 发布订阅

         Subscribe订阅一个频道,publish命令发布的内容通过subscribe可以看到,取消订阅功能是unsubscirbe。

         Psubscribe订阅一批频道,unpsubscribe取消

         下图显示在频道ch1中发布’my nameis jack’

         

          下图显示订阅了ch1频道并查看到了my nameis jack

          

          以下是批量订阅发布

          

           

          

    61:flushall  flushdb

           Flushall命令清除redis实例的所有数据

           Flushdb命令清除当前数据库的所有数据

    总结:

       1:set命令会强制废除一个key的原有类型将其变更为字符串类型。

       2:redis是按照key来存储数据的它没有提供按条件查询,但可以使用zrangebyscore和zrangebylex来实现条件查询。

  • 相关阅读:
    jmeter脚本开发:插件安装和设计场景(五)
    jmeter脚本开发:SOAP接口和JDBC(四)
    jmeter脚本开发:控制器和参数化(三)
    gauge自动化框架踩坑(六):关于csv
    gauge自动化框架踩坑(五):关于表格
    gauge自动化框架踩坑(四):在测试报告中自定义messages
    MediaPlayer播放音频,也可以播放视频
    soundpool播放声音
    ContentProvider
    了解 IMyInterface.Stub
  • 原文地址:https://www.cnblogs.com/jpfss/p/10842680.html
Copyright © 2011-2022 走看看