当前位置 博文首页 > 文章内容

    《Redis内存数据库》Redis数据类型和基本操作

    作者:加速丨世界 栏目:未分类 时间:2020-09-16 10:01:20

    前言

    redis 有多种数据类型,兼容应用的开发。

    说明

    第一种数据类型:string(字符串)

    set key value     -- 设置key和key对应的value值

    get key              -- 获取key对应的value值

    案例:

    incr key      ---对应的value 自增1,如果没有这个key值 自动给你创建创建 并赋值为1

    decr key     ---对应的value 自减1

    incrby key num      ---对应的value 增num

    decrby key num     ---对应的value 减num

    mset key1 value1 key2 value2 一次设置多个值

    mget key1 key2    一次查询多个值

    setrange key offset value:把字符串的offset偏移字节改成value,如果偏移量 > 字符串长度,该字符自动补0x00

    append key value :把value追加到key 的原值上

    getrange key start stop:获取字符串中[start, stop]范围的值

    getset key nrevalue:返回旧值并设置新值

    incrbyfloat key 0.7: 自增浮点数

    strlen key:取指定key的value值的长度

    setex key time value:设置key对应的值value,并设置有效期为time秒。

    ttl key    查询剩余有效时间

     

    第二种数据类型:hash(字典)

    案例:

    hset  key  filed value     -- 设置hash的键值。

    hget key filed                -- 获取hash的值。

    HMSET key field value [field value ...]    -- 批量设置hash的键值

    HMGET key field [field ...]                       -- 批量查询hash的值

    HGETALL key         -- 查询key的全部键值对信息

    HDEL key field [field ...]     -- 删除hash中的其中一个或者多个键值对

    HEXISTS key field          -- 是否存在默个键值对

    HKEYS key         -- 查询hash 的全部键值信息

    HVALS key        -- 查询hash 的全部键值对应的value信息

    HINCRBY key field increment                -- 某一个键值上加increment 偏移量

    HINCRBYFLOAT key field increment      -- 某一个键值上加increment 浮点数的偏移量

    HLEN key     -- 哈希键对应的键值对数量

    HSETNX key field value         -- hash的键不存在时才加入并赋值。

     

    第三种数据类型:list(列表)

    结构:

    key                 value

    key                 [6 , 5 , 4 , 3 , 2 , 1]

                  下标   0   1   2    3  4   5(-1)

    案例:

    LPUSH key value [value ...]      -- 写入数据到list, 先进先出原理

    LINDEX key index              -- 查询list 某个下标的数据

    LRANGE key start stop             -- 查询list 数据。

    LPUSHX key value      -- 存在键加入,不存在不创建key值。

    LINSERT key BEFORE|AFTER pivot value     -- 在某个元素之前或者之后插入数据

    RPUSH key value [value ...]      -- 将数据插入链表,链表是先进先出

    RPUSHX key value         -- 存在key 则插入,否则无效,链表的操作。

    RPOPLPUSH source destination     -- 复制list的最后一个数据

    LREM key count value       -- 删除count个元素。

    LTRIM key start stop          -- 保留从start到stop的元素

    LSET key index value       -- 修改某个角标上的值。

    LPOP key      -- 获取第一个元素,并且删除。

     

    第四种数据类型:set(集合)

    结构:

    key                 value

    key                 (zhangsan , lili , hanmeimei, lilei )

    案例:

    sadd key member [member ...]      -- 添加数据到set可以多个

    SCARD key    -- 查询set数量

    SMEMBERS key     -- 查询集合中的全部元素

    SUNION key [key ...]       -- 获取多个集合的并集。

    SINTER key [key ...]          --  获取多个集合的交集

    SDIFF key [key ...]            -- 第一个key 和其他key的差级

    SDIFFSTORE destination key [key ...]  -- 将差集的值,存入destination集合中

    SINTERSTORE destination key [key ...]     -- 将交集的值,存入destination集合中

    SUNIONSTORE destination key [key ...]     -- 将并集的值,存入destination集合中

    SISMEMBER key member     -- 判断集合中是否在member 成员

    SMOVE source destination member    -- 移动成员从集合到另一个集合

    SPOP key [count]      -- 随机删除count个元素,并且返回被删除的元素

    SRANDMEMBER key [count]    -- 顺序返回count个元素

    SREM key member [member ...]      -- 删除集合元素

    SSCAN key cursor [MATCH pattern] [COUNT count]    -- 迭代集合的元素

     

    第五种数据类型:sortset(有序集合)

    结构:

    key                 value

    key                 (scores zhangsan ,scores  lili ,scores  hanmeimei,scores  lilei )

                                        0                      1                         2                    3(-1)

    案例:

    ZADD key [NX|XX] [CH] [INCR] score member [score member ...]      -- 增加一个带数量的元素

    ZINCRBY key increment member     -- 给某个元素设置数量

    ZREVRANGE key start stop [WITHSCORES]        -- 排序显示集合元素, WITHSCORES 表示额外打印分数

     ZCARD key       -- 查询有序集合元素

    ZCOUNT key min max      -- 查询在min到max区间内的元素个数

    ZRANGE key start stop [WITHSCORES]     -- 根据脚标查询有序集合,WITHSCORES带分数显示。

    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]     -- 通过分数返回元素,WITHSCORES带分数显示

    ZRANK key member        -- 获取有序集合指定元素的角标。

    ZREM key member [member ...]       -- 按照元素名称移除指定元素

    ZREMRANGEBYSCORE key min max     -- 按照分数范围移除指定元素

    ZREVRANK key member             -- 获取某个元素的排名

    ZSCORE key member             -- 获取某个元素的分数

     

    其他特殊点:

    cat /tmp/data.txt | redis-cli -a 123456    -- 将文件data.txt的redis命令交给redis-cli 执行。

    总结

    Redis的这些数据类型都是为了满足当前互联网的需求,简化一些特定场景的数据操作,并且快速。

    参考:http://doc.redisfans.com/list/blpop.html