zoukankan      html  css  js  c++  java
  • redis数据类型

    1. String数据类型

    ​ 字符串是使用最多的一种数据类型,C语言当中,0代表false,1代表true

    SET key value [EX seconds|PX milliseconds] [NX|XX] [KEEPTTL] # 设置值

    GET key # 获取值

    SETEX key seconds value # 设置失效时间

    MSET key value [key value ...] # 进行多个内容设置

    SETNX key value # 不覆盖单个内容设置

    MSETNX key value [key value ...] # 不覆盖设置多个内容

    APPEND key value # 追加

    STRLEN key # 获取长度

    DEL key [key ...] # 删除key

    flushdb [ASYNC] # 清空当前库

    FLUSHALL [ASYNC] # 清空所有库

    SELECT index # 切换库

    root@iZ2ze8gkwfpqlsfl8j4o14Z:~# redis-cli -p 6379
    127.0.0.1:6379> AUTH 123456
    OK
    127.0.0.1:6379> set msg lee-hello
    OK
    127.0.0.1:6379> get msg
    "lee-hello"
    127.0.0.1:6379> set info {name:SMITH,age:18}
    OK
    127.0.0.1:6379> set code 654321 EX 10
    OK
    127.0.0.1:6379> mset info-a lee info-b hello info-c world
    OK
    127.0.0.1:6379> setnx info hello
    (integer) 0
    127.0.0.1:6379> setnx infox hello
    (integer) 1
    127.0.0.1:6379> msetnx info-a lee info-b hello info-d xiaoxiao
    (integer) 0
    127.0.0.1:6379> append msg !!!
    (integer) 12
    127.0.0.1:6379> strlen msg
    (integer) 12
    127.0.0.1:6379> del msg info
    (integer) 2
    127.0.0.1:6379> flushdb
    OK
    127.0.0.1:6379> flushall
    OK
    127.0.0.1:6379> select 1
    OK
    

    2. Hash数据类型

    Hash是对String类型的扩展,可以理解为key-map,可以创建多个子key来保存一组数据。

    HSET key field value [field value ...] # 设置hash值

    HGET key field # 获取hash

    HMSET key field value [field value ...] # 多个hash设置

    HMGET key field [field ...] # 获取多个子key的值

    HSETNX key field value # 不覆盖进行设置

    HDEL key field [field ...] # 删除

    HVALS key # 获取hash key中的所有数据

    HGETALL key # 获取hash中的所有内容,包括key和value

    INCR key # 数字操作,自增1

    INCRBY key increment # 数字操作,自增指定长度

    DECR key # 数字操作,自减1

    DECRBY key decrement # 自减指定长度

    HINCRBY key field increment # 对hash 类型进行自增

    root@iZ2ze8gkwfpqlsfl8j4o14Z:~# redis-cli 
    127.0.0.1:6379> AUTH 123456
    OK
    127.0.0.1:6379> hset member-lee name xiaoli
    (integer) 1
    127.0.0.1:6379> hset member-lee age 18
    (integer) 1
    127.0.0.1:6379> hset member-lee salary 1.3
    (integer) 1
    127.0.0.1:6379> hmset member-xiaoke name xb age 69 salary -103.2
    OK
    127.0.0.1:6379> hmget member-lee name age salary
    1) "xiaoli"
    2) "18"
    3) "1.3"
    127.0.0.1:6379> hsetnx member-lee name xiaoli
    (integer) 0
    127.0.0.1:6379> hdel member-lee age salary
    (integer) 2
    127.0.0.1:6379> hvals member-xiaoke
    1) "xb"
    2) "69"
    3) "-103.2"
    127.0.0.1:6379> hgetall member-xiaoke
    1) "name"
    2) "xb"
    3) "age"
    4) "69"
    5) "salary"
    6) "-103.2"
    127.0.0.1:6379> set xiaohei-age 69
    OK
    127.0.0.1:6379> incr xiaohei-age
    (integer) 70
    127.0.0.1:6379> incrby xiaohei-age 78
    (integer) 148
    127.0.0.1:6379> decr xiaohei-age
    (integer) 147
    127.0.0.1:6379> decrby xiaohei-age 200
    (integer) -53
    127.0.0.1:6379> hset shopcar-lee 99 1
    (integer) 1
    127.0.0.1:6379> hincrby shopcar-lee 99 1
    (integer) 2
    

    3. List数据类型

    List数据类型主要实现的是一个双端队列的处理概念(可以实现队列的入队和出队操作),也可实现队头和队尾的数据操作。

    LPUSH key element [element ...] # 向队列左边进行数据添加

    RPUSH key element [element ...] # 向队列右边进行数据添加

    LRANGE key start stop # 获取队列内容,全部获取0 -1

    LPOP key # 左边弹出

    RPOP key # 右边弹出

    LINSERT key BEFORE|AFTER pivot element # 在指定位置之前|之后进行添加

    LSET key index element # 根据索引进行内容修改

    LREM key count element # 进行指定个数的删除,有可能存在重复数据

    LTRIM key start stop # 删除当前位置之外的数据

    RPOPLPUSH source destination # 将弹出的内容保存到另外一个集合

    LLEN key # 获取队列长度

    127.0.0.1:6379> lpush lee-message hello-a hello-b hello-c hello-d hello-e
    (integer) 5
    127.0.0.1:6379> rpush lee-message world-1 world-2 world-3 world-4 world-5
    (integer) 10
    127.0.0.1:6379> lrange lee-message 0 -1
     1) "hello-e"
     2) "hello-d"
     3) "hello-c"
     4) "hello-b"
     5) "hello-a"
     6) "world-1"
     7) "world-2"
     8) "world-3"
     9) "world-4"
    10) "world-5"
    127.0.0.1:6379> lpop lee-message
    "hello-e"
    127.0.0.1:6379> rpop lee-message
    "world-5"
    127.0.0.1:6379> linsert lee-message BEFORE hello-c hello-before
    (integer) 9
    127.0.0.1:6379> lrange lee-message 0 -1
    1) "hello-d"
    2) "hello-before"
    3) "hello-c"
    4) "hello-b"
    5) "hello-a"
    6) "world-1"
    7) "world-2"
    8) "world-3"
    9) "world-4"
    127.0.0.1:6379> linsert lee-message AFTER hello-c hello-after
    (integer) 10
    127.0.0.1:6379> lset lee-message 3 hello-world
    OK
    127.0.0.1:6379> lpush lee-message hello-repeat hello-repeat hello-repeat
    (integer) 13
    127.0.0.1:6379> lrem lee-message 1 hello-e
    (integer) 0
    127.0.0.1:6379> lrem lee-message 2 hello-repeat
    (integer) 2
    127.0.0.1:6379> ltrim lee-message 2 4
    OK
    127.0.0.1:6379> rpoplpush lee-message lee-pop
    "hello-world"
    127.0.0.1:6379> llen lee-pop
    (integer) 1
    

    4. Set数据类型

    Set集合最大的特点是可以保存无重复的元素集合,每个集合里面最多可保存40亿元素的信息,set集合出现的最大意义在于可以方便的进行各种集合运算。

    SADD key member [member ...] # 设置set值

    SMEMBERS key # 查看内容

    SPOP key [count] # 弹出数据,可以指定个数

    SRANDMEMBER key [count] # 弹出数据内容,不进行元素删除

    SDIFF key [key ...] # 计算多个集合的差值

    SINTER key [key ...] # 计算多个集合交集

    SUNION key [key ...] # 计算多个集合并集

    SDIFFSTORE destination key [key ...] # 进行差集信息的存储

    SINTERSTORE destination key [key ...] # 实现交集信息存储

    SUNIONSTORE destination key [key ...] # 实现并集信息存储

    SMOVE source destination member # 由一个set向另一个set进行元素移动

    SISMEMBER key member # 判断是否存在某个元素

    127.0.0.1:6379> sadd user-lee a b c d e f g h i h k
    (integer) 1
    127.0.0.1:6379> sadd user-hei a b c d x y z a a d c
    (integer) 0
    127.0.0.1:6379> smembers user-lee
     1) "i"
     2) "h"
     3) "e"
     4) "f"
     5) "a"
     6) "g"
     7) "d"
     8) "k"
     9) "c"
    10) "b"
    127.0.0.1:6379> spop user-lee
    "c"
    127.0.0.1:6379> srandmember user-lee 
    "a"
    127.0.0.1:6379> sdiff user-lee user-hei
    1) "f"
    2) "e"
    3) "h"
    4) "i"
    5) "k"
    6) "g"
    127.0.0.1:6379> sinter user-lee user-hei
    1) "d"
    2) "a"
    3) "b"
    127.0.0.1:6379> sunion user-lee user-hei
     1) "y"
     2) "i"
     3) "f"
     4) "e"
     5) "h"
     6) "z"
     7) "a"
     8) "x"
     9) "g"
    10) "d"
    11) "k"
    12) "c"
    13) "b"
    127.0.0.1:6379> sdiffstore user-diff user-lee user-hei
    (integer) 6
    127.0.0.1:6379> sinterstore user-inter user-lee user-hei
    (integer) 3
    127.0.0.1:6379> sunionstore user-union user-lee user-hei
    (integer) 13
    127.0.0.1:6379> smove user-lee user-hei k
    (integer) 1
    127.0.0.1:6379> sismember user-lee a
    (integer) 1
    

    5. ZSet数据类型

    ZSet也属于Set集合,是对set集合的扩充,区别在于:第一可以进行顺序排序,第二可以进行数据打分。例如在很多搜索引擎中会出现一些热点的搜索关键字,就可以通过ZSet数据类型来实现。

    ZADD key [NX|XX] [CH] [INCR] score member [score member ...] # 内容设置

    ZRANGE key start stop [WITHSCORES] # 显示内容

    ZREVRANGE key start stop [WITHSCORES] # 进行排序

    127.0.0.1:6379> zadd keyword-20201010 5.0 preety
    (integer) 1
    127.0.0.1:6379> zadd keyword-20201010 2.0 spring
    (integer) 1
    127.0.0.1:6379> zadd keyword-20201010 10.0 xiaoli
    (integer) 1
    127.0.0.1:6379> zadd keyword-20201010 3.5 stream
    (integer) 1
    127.0.0.1:6379> zrange keyword-20201010 0 -1
    1) "spring"
    2) "stream"
    3) "preety"
    4) "xiaoli"
    127.0.0.1:6379> zrange keyword-20201010 0 -1 WITHSCORES
    1) "spring"
    2) "2"
    3) "stream"
    4) "3.5"
    5) "preety"
    6) "5"
    7) "xiaoli"
    8) "10"
    127.0.0.1:6379> zrevrange keyword-20201010 0 -1
    1) "xiaoli"
    2) "preety"
    3) "stream"
    4) "spring"
    127.0.0.1:6379> zrevrange keyword-20201010 1 5
    1) "preety"
    2) "stream"
    3) "spring"
    
  • 相关阅读:
    双心ping GUI工具1.0
    判断手机连接的是fdd还是tdd的办法
    能在CAD2004以下版本里面打开2007以上版本文件的外挂
    关闭阿里旺旺后台服务
    map 后 PE 蓝屏原因专题讨论(e820cycles参数)
    关于e820cycles参数
    在XP下把win7安装到VHD,内存足够大可以RAMOS
    抛弃优启Grub4dos和PE大多数时间可以这样用
    考拉输入法1.1-古董级小巧连打输入法
    小韦XP 和win2003装电信天翼3G无线上网卡
  • 原文地址:https://www.cnblogs.com/luliang888/p/13179972.html
Copyright © 2011-2022 走看看