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

   

posted @ 2017-05-23 09:24  奋斗的蜗牛cn  阅读(347)  评论(0编辑  收藏  举报