zoukankan      html  css  js  c++  java
  • redis五种数据结构

    1、redis 通常被称为数据结构服务器,遵守BSD协议,是一个高性能的key-value数据库。值可以是 字符串(String)、哈希(hash)、列表(list)、集合(set)、有序集合(sorted sets)等类型。

    2、Redis与其他key-value缓存产品有以下三个特点:

      Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候还可以再次加载使用。

      Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset(sorted set),hash等数据结构的存储。

      Redis支持数据的备份,即master-slave模式的数据备份。

     3、string是redis最基本的类型,一个key对应一个value,string可以包含任何数据,比如jpg图片或者序列化的对象,一个键最多能存储512M。

      

      

    命令

    描述

    setex user.2.age 2 14

    把user.2.age 的值设14 并且2秒后过期失效

    mset user.4.name lisi user.4.age 34

    设置user.4.name=lisi,user.4.age=34 

    msetnx user.4.name lisi user.4.age 34 

    所有key都不存在才执行set操作

    get user.4.name user.4.age user.4.std

    批量获取存在key的值

    getrange key star end

    字符串的截取有star和end决定

    getset key value

    设置key的值,并返回key的旧值。

    append key value

    key存在,在旧值的后面追加value;key不存在,直接set

    setrange key offset value

    用value重写key值的一部分,偏移量由offset指定

    incr key

    key中如果存储的是数字,则可以通过incr递增key的值,返回递增后的值。如果key不能存在,视为初始值为0

    incrby key increment

    用指定的步长增加key存储的数字。如果步长increment是负数,则减

    decr key

    递减key保存的数字,如果key不存在,初始值视为0

    decrby key decrement

    用指定的步长递减key的值,如果步长decrment是负值,则递增(key必须是数字)

    del key [key]

    删除指定的key,返回删除key的个数

    strlen key

    获取key中所存储值的长度

    4、Redis hash是一个键名对集合,是一个string类型的field和value的映射表,hash特别适合存储对象。每个hash可以存储232-1键值对(40多亿)。

      

      对单个key/value操作

      

    5、Redis list 是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或尾部。列表可最多存储232-1元素(每个列表可最多存储40多亿)。

      

      

      

    命令

    描述

    RPUSH key-name value

    将一个值或多个值推入列表的右端

    LPUSH key-name value

    将一个值或多个值推入列表的左端

    RPOP key-name

    移除并返回列表最右端的值

    LPOP key-name

    移除并返回列表最左端的值

    LINDEX key-name offset

    返回列表中偏移量为offset的元素

    LRANGE key-name start end

    返回列表中从start到end的值(包括start end)

    LTRIM key-name start end

    对列表进行修剪,只保留start到end的元素(包括start end)

     

    6、Redis 的Set是string类型的无序集合,集合是通过哈希表实现的,没有先后顺序,所以添加,删除,查找的复杂度都是O(1)。

      sadd命令,添加一个string元素到key对应的集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

        

      操作单个set

        

     sismember key value  判断某个值是否存在

      操作多个set的命令

      将一个set的元素移动到另一个set中的命令

      

      set求交集命令

      

      set求并集命令

      

      set 求差集的命令

      

    7、zset(sorted set:有序集合)中也是string类型元素的集合,且不允许重复,不同的是每个元素都会关联一个double类型的分数,redis通过分数来为集合中的成员从小到大进行排序。成员唯一,但是分数可以重复。

      

        

    命令

    描述

    ZADD key-name score member

    将带有给定分值的成员添加到有序集合里面

    ZREM key-name member

    从有序集合里面移除给定成员,返回被移除数量

    ZCARD ame

    返回有序集合包含的成员数量

    ZINCREBY key-name increment member

    将member的分值加上increment

    ZCOUNT key-name min max

    返回分值介于min和max之间的成员数量

    ZRANK key-name member

    返回成员member在有序集合中的排名

    ZSCORE key-name member

    返回成员member的分值

    ZRANGE key-name start stop[WITHSCORES]

    返回有序集合排名中介于strat和stop之间的成员,若有WITHSCORES,则将成员的分值一并返回

       

  • 相关阅读:
    不可或缺 Windows Native (15)
    不可或缺 Windows Native (14)
    不可或缺 Windows Native (13)
    不可或缺 Windows Native (12)
    不可或缺 Windows Native (11)
    不可或缺 Windows Native (10)
    不可或缺 Windows Native (9)
    不可或缺 Windows Native (8)
    不可或缺 Windows Native (7)
    不可或缺 Windows Native (6)
  • 原文地址:https://www.cnblogs.com/qducn/p/6892540.html
Copyright © 2011-2022 走看看