zoukankan      html  css  js  c++  java
  • Redis 5种数据类型的常用命令

    先了解Redis的大致作用和内容:https://github.com/JasonLai256/the-little-redis-book/blob/master/cn/redis.md

    Redis 命令中文文档:http://doc.redisfans.com

    字符串 string、散列类型 hash、列表类型 list、集合类型 set、有序集合类型 zset

    Redis的命令是不区分大小写的

    常用命令:

    key 含义
    keys * 获取所有的key
    EXISTS key 判断一个键是否存在
    DEL key [key …] 删除键
    TYPE key 获得键值的数据类型

    字符串类型

    命令

    key 含义
    SET key value 赋值
    GET key 取值
    INCR key 递增数字
    INCRBY key increment 每次给key值增加increment
    DECR key
    DECRBY key decrement
    递减键值
    每次递减decrement
    INCRBYFLOAT key increment 增加指定浮点数(双精度)
    APPEND key value 向尾部追加值
    STRLEN key 获取字符串长度
    MGET key1 key2 .. 同时获得多个键值
    MSET key1 value1 key2 value2 .. 同时设置多个键值

    散列类型

    HSET 不区分插入和更新操作,返回值为1表示插入操作,返回值为0表示更新操作

    key 含义
    HSET key field value
    HGET key field
    HMSET key field value [field value …]
    HMGET key field [field …]
    HGETALL key
    赋值
    取值
    同时给多个字段赋值
    同时取多个字段值
    获得key的所有字段值
    HEXISTS key field 判断字段是否存在
    HSETNX key field value 如果field 存在就不执行添加操作
    HINCRBY key field increment 增加数字 ,hash没有 HINCR 命令
    HDEL key field [field …] 删除一个或多个字段
    HKEYS key 只获取字段名
    HVALS key 只获取字段值
    HLEN key 获得字段数量

    列表类型

    key 含义
    LPUSH key value [value …] 向列表左边增加元素
    RPUSH key value [value …] 向列表右边增加元素
    LPOP key
    RPOP key
    从列表两端移除并返回元素值
    LLEN key 获取列表中元素的个数
    LRANGE key start stop 获得列表从 start到 stop之间的所有元素
    (包含两端的元素)
    索引从0开始;支持负数,负数表示从右边开始
    LREM key count value 删除列表中前count个值为value的元素:
    当 count > 0时,列表从左边开始删除
    当 count < 0时,列表从右边开始删除
    当 count = 0时,列表删除所有值为 value的元素
    LINDEX key index
    LSET key index value
    获得/设置指定索引的元素值
    LTRIM key start end 删除指定索引范围之外的所有元素
    (指定范围的方法与LRANGE 相同)
    LINSERT key BEFORE|AFTER pivot value 向列表中插入元素
    先从左到右查找值为 pivot 的元素
    然后在元素的前面/后面插入value值
    RPOPLPUSH source destination 将元素从一个列表source 转到另一个列表 destination

    集合类型

    key 含义
    SADD key member [member ..] 添加元素(如某元素已存在就忽略)
    SREM key member [member ..] 删除元素
    SMEMBERS key 获得集合key中的所有元素
    SISMEMBER key member 判断元素是否在集合中
    SDIFF key [key1 key2 ..] 差集运算(属于key1且不属于key2的元素构成的集合)
    SINTER key [key1 key2 ..] 交集运算(属于key1属于key2的元素构成的集合)
    SUNION key [key1 key2 ..] 并集运算(属于key1属于key2的元素构成的集合)
    SDIFFSTORE destination key [key …] 和SDIFF命令功能一样
    但它不会直接返回运算结果, 而是存储在destination键中
    SINTER和SUNION也有对应的命令
    SCARD key 而是将结果存储在destination键中。获得集合中元素个数
    SRANDMEMBER key [count] 随机获得集合中的元素

    有序集合类型

    有序集合类型算得上是Redis的5种数据类型中最高级的类型了。

    在集合类型的基础上有序集合类型为集合中的每个元素都关联了一个分数,这使得我们 不仅可以完成插入、删除和判断元素是否存在等集合类型支持的操作,还能够获得分数最高 (或最低)的前N个元素、获得指定分数范围内的元素等与分数有关的操作。虽然集合中每 个元素都是不同的,但是它们的分数却可以相同。

    有序集合类型在某些方面和列表类型有些相似,但他们应用场景是不同的。

    1. 列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更加适合实现如“新鲜事”或“日志”这样很少访问中间元 素的应用。
    2. 有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。
    3. 列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。
    4. 有序集合要比列表类型更耗费内存。
    key 含义
    ZADD key score member [score member …] 增加元素 ,score 是元素关联的分数
    ZSCORE key member 获得元素的分数
    ZRANGE key start stop [WITHSCORES] 获得排名在某个范围的元素列表(从大到小)
    加 WITHSCORES 表示同时显示分数;
    索引从0开始,-1 表示最后一个
    ZREVRANGE key start stop [WITHSCORES] 和 ZRANGE 相似,但是从小到大排序
    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 获得指定分数范围的元素
    ZCARD key 获得集合中元素的数量
    ZCOUNT key min max 获得指定分数范围内的元素个数
    ZREM key member [member …] 删除一个或多个元素
    ZREMRANGEBYRANK key start stop 先从小到大排序,再删除 start 到 stop的元素
    ZREMRANGEBYSCORE key min max 按照分数范围删除元素
    ZRANK key member 获得元素的排名

    计算有序集合的交集:

    ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATESUM|MIN|MAX]


  • 相关阅读:
    Jquery
    day87-Django创建程序步骤,路由系统和项目执行
    day86-Django安装、cmd控制台操作
    day85-Django初识-自己开发的web框架
    day84-bootstrap
    day83-pymysql操作mysql,pycharm安装pymysql的方法(驱动)
    day82-jQuery-事件、动画、each、data、插件
    day81-jQuery-文档操作
    day80-jQuery-属性操作
    day79-jQuery-文本操作
  • 原文地址:https://www.cnblogs.com/luler/p/15015878.html
Copyright © 2011-2022 走看看