• Redis不同类型的命令


    Redis不同类型的命令

    五大数据类型

    String 字符串

    List 列表

    127.0.0.1:6379> lpush list1 aaa #插入值至列表头部(左)
    (integer) 1
    127.0.0.1:6379> lpush list1 bbb
    (integer) 2
    127.0.0.1:6379> rpush list1 111 #插入值至列表尾部(右)
    (integer) 3
    127.0.0.1:6379> lrange list1 0 -1 #取值(从头开始)
    1) "bbb"
    2) "aaa"
    3) "111"
    ###############################################################################
    127.0.0.1:6379> lpop list1 #弹出值(lpop从头, rpop从尾)
    "bbb"
    127.0.0.1:6379> lindex list1 0 #按下标取值
    "aaa"
    127.0.0.1:6379> llen list1 #查看list长度
    (integer) 2
    127.0.0.1:6379> lset list1 0 item #更新值
    OK
    127.0.0.1:6379> linsert list1 before aaa 123 #插入值(before|after)
    (integer) 3
    ###############################################################################
    127.0.0.1:6379> lrem list1 1 111 #移出list中指定个数的值
    (integer) 1
    127.0.0.1:6379> ltrim list2 2 3 #截取list中的值
    OK
    ###############################################################################
    127.0.0.1:6379> rpoplpush list2 list1 #从list2的尾部弹出值后插入至list1的头部
    "aaa"
    

    Set 集合

    127.0.0.1:6379> sadd set1 aaa bbb ccc #存值
    (integer) 3
    127.0.0.1:6379> smembers set1 #查看所有值
    1) "aaa"
    2) "ccc"
    3) "bbb"
    127.0.0.1:6379> sismember set1 aaa #查看是否包含该值
    (integer) 1
    127.0.0.1:6379> scard set1 #查看元素个数
    (integer) 3
    127.0.0.1:6379> srem set1 bbb #移除元素
    (integer) 1
    ###############################################################################
    127.0.0.1:6379> srandmember set1 #抽取随机元素
    "ccc"
    127.0.0.1:6379> srandmember set1 2 #抽取多个随机元素
    1) "aaa"
    2) "ccc"
    ###############################################################################
    127.0.0.1:6379> spop set1 #弹出值(从尾部)
    "ccc"
    127.0.0.1:6379> smove set1 set2 aaa #移动元素
    (integer) 1
    ###############################################################################
    127.0.0.1:6379> sdiff set1 set2 #查看多个集合中的不同元素(set1-set2的差集)
    1) "bbb"
    127.0.0.1:6379> sinter set1 set2 #查看多个集合中的相同元素(交集)
    1) "aaa"
    127.0.0.1:6379> sunion set1 set2 #查看多个集合中的所有元素(并集)
    1) "aaa"
    2) "bbb"
    
    

    Hash 哈希

    127.0.0.1:6379> hset user1 name zhangsan #设值
    (integer) 1
    127.0.0.1:6379> hget user1 name #取值
    "zhangsan"
    127.0.0.1:6379> hmget user2 name age #取多个值
    1) "lisi"
    2) "11"
    ###############################################################################
    127.0.0.1:6379> hgetall user2 #查看所有键值对
    1) "name"
    2) "lisi"
    3) "age"
    4) "11"
    127.0.0.1:6379> hkeys user2 #查看所有key
    1) "name"
    2) "age"
    127.0.0.1:6379> hvals user2 #查看所有value
    1) "lisi"
    2) "11"
    127.0.0.1:6379> hlen user2 #查看键值对个数
    (integer) 2
    ###############################################################################
    127.0.0.1:6379> hincrby user2 age 2 #i+2
    (integer) 13
    127.0.0.1:6379> hdel user1 name #删除值
    (integer) 1
    127.0.0.1:6379> hexists user2 age #查看该值是否存在
    (integer) 1
    127.0.0.1:6379> hsetnx user2 nickname dd #当值不存在时设值
    (integer) 1
    

    Zset 有序集合

    127.0.0.1:6379> zadd score 50 zhangsan #存值
    (integer) 1
    127.0.0.1:6379> zrange score 0 -1 #取值
    1) "zhangsan"
    2) "wangwu"
    3) "lisi"
    127.0.0.1:6379> zrangebyscore score -inf +inf #从低到高排序(可以自定义范围)
    1) "zhangsan"
    2) "wangwu"
    3) "lisi"
    127.0.0.1:6379> zrangebyscore score -inf +inf withscores #带值排序
    1) "zhangsan"
    2) "50"
    3) "wangwu"
    4) "60"
    5) "lisi"
    6) "70"
    ###############################################################################
    127.0.0.1:6379> zrem score lisi #移除元素
    (integer) 1
    127.0.0.1:6379> zcard score #查看元素个数
    (integer) 2
    127.0.0.1:6379> zcount score 60 100 #查看区间中元素个数
    (integer) 1
    

    三种特殊数据类型

    Geospatial 地理位置

    127.0.0.1:6379> geoadd city 121 31 shanghai #存值(经纬度)
    (integer) 1
    127.0.0.1:6379> geopos city beijing #查看位置
    1) 1) "116.00000113248825073"
       2) "39.99999991084916218"
    ###############################################################################
    127.0.0.1:6379> geodist city beijing shanghai km #两点距离, 默认使用m作单位
    "1098.1580"
    ###############################################################################
    127.0.0.1:6379> georadius city 120 27 1000 km #查看坐标位置附近
    1) "guangzhou"
    2) "shanghai"
    127.0.0.1:6379> georadiusbymember city shanghai 1500 km #查看元素位置附近
    1) "guangzhou"
    2) "shanghai"
    3) "beijing"
    ###############################################################################
    127.0.0.1:6379> geohash city beijing #查看元素位置hash
    1) "wx47x9u8gu0"
    
    • Geospatial的本质还是Zset, 可以使用Zset的命令, 如zrem移除元素

    Hyperloglog 基数统计

    127.0.0.1:6379> pfadd key1 a b c d e f g #存值
    (integer) 1
    127.0.0.1:6379> pfcount key1 #统计基数数量, 输入多个key可以查看并集
    (integer) 7
    127.0.0.1:6379> pfmerge key3 key1 key2 #合并key1和key2到key3
    OK
    

    Bitmaps 位图

    127.0.0.1:6379> setbit sign 0 0 #存值
    (integer) 0
    127.0.0.1:6379> getbit sign 1 #取值
    (integer) 1
    127.0.0.1:6379> bitcount sign #统计值为1的个数
    (integer) 5
    
  • 相关阅读:
    第一行DOCTYPE 的作用
    es6 proxy、handler.get()
    vue router-link 默认a标签去除下划线
    打开记事本
    JS数组遍历的方法
    vue项目中使用proxy解决跨域
    封装axios
    postMessage vue iframe传值
    input限制只能输入数字,且保留小数后两位
    axios封装
  • 原文地址:https://www.cnblogs.com/pinked/p/12903253.html
Copyright © 2020-2023  润新知