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,则将成员的分值一并返回

       

  • 相关阅读:
    Java 访问标识符
    Java 类变量与实例变量的区别
    Java 变量
    python install sublime安装
    Failed to resolve com.android.support:support-annotations 26.0.1
    Git的使用及托管代码到GitHub
    Recyclerview点击事件,更新item的UI+更新Recyclerview外的控件
    第一次android混淆实战
    android计算屏幕dp
    显示当前日期时间
  • 原文地址:https://www.cnblogs.com/qducn/p/6892540.html
Copyright © 2011-2022 走看看