redis的数据类型

叙述

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

string(字符串)

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

  • 获取所有key keys *
  • 获取某个key的类型 type key
  • 设置key、value set key value
  • 设置key、value不存在则设置 setnx key value
  • 设置key、value存在n秒 setex key n value
  • 获取某个key值 get key
  • 批量设置key、value mset key value key1 value1
  • 批量获取key、value mget key value key1 value1
  • 批量设置key、value,任意一个key不存在则设置 msetnx key value key1 value1
  • 返回key指定范围下标(n到m)的value getrange key n m
  • 自增 incr key
  • 增加n incrby key n
  • 自减 decr key
  • 减n decrby key n
  • 返回key值的长度 strlen key
  • 在key值后面再添加value append key value
  • 判断是否存在key exists key
  • 返回key值的长度 strlen key
  • 设置key的过期时间n(秒) expire key n
  • 设置key的过期时间n(毫秒) pexpire key n
  • 查询key的过期时间 ttl key
  • 删除过期时间 persist key

hash(哈希)

Redis hash 是一个键值(key=>value)对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

  • 获取hash所有key hkeys table
  • 获取hash所有value hvals table
  • 获取hash所有key、value hgetall table
  • 设置key、value hset table field value
  • 批量设置key、value hmset table field value field2 value2 field3 value3
  • 获取某个key值 hget table field
  • 批量获取key、value hmget table field field2 field3
  • 设置key、value不存在则设置 hsetnx table field value
  • 自增 hincr table field
  • 增加n hincrby table field
  • 自减 hdecr table field
  • 减n hdecrby table field
  • 判断table中是否存在filed hexists table filed
  • 判断table有几个field hlen table
  • 删除field hdel table field

list(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

  • 获取list所有value lrange list 0 -1取全部元素
  • 在左边插入list元素 lpush list value
  • 在右边插入list元素 rpush list value
  • 从左边弹出一个list元素 lpop list
  • 从右边弹出一个list元素 rpop list
  • 获取list长度 llen list
  • 从list中删除n个和value相同的元素 lrem list n value
  • 从list中删除下标1—3元素 ltrim list 1 3
  • 获取指定索引value lindex list n
  • 把list中下标为n的元素赋值为value lset list n value
  • 在value前面压入一个元素 linsert list before value value
  • 在value后面压入一个元素 linsert list after value value
  • 移除list中最后(最前)一个元素并向左(右)插入到list2中 r®popl®push list list2

set(集合)

Redis的Set是string类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

  • 获取set所有value smembers set
  • 返回set中元素个数 scard set
  • 向zset添加元素 sadd set value
  • 删除value元素 srem set value
  • 随机返回并删除元素 spop set
  • 随机返回set中一个元素,不会删除 srandmember set
  • 返回所有指定set与第一个set的差集 sdiff set1 set2
  • 返回所有指定set与第一个set的差集并存入set3中 sdiffstore set1 set2 set3
  • 返回所有指定的交集 sinter set1 set2
  • 返回所有指定的次并存入set3 sinterstore set1 set2 set3
  • 返回所有指定的并集 sunion set1 set2
  • 返回所有指定的并集并存入set3 sunionstore set1 set2 set3
  • 从第一个set中value剪切到第二个set中 smove set1 set2 value
  • 判断value是否为set的元素 sismember set value

zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

  • 获取zset所有value(是否带顺序号) zrange zset 0 -1 withscores
  • 返回set中元素个数 scard set
  • 向zset添加元素,顺序为n zadd zset n value
  • 删除value元素 zrem set value
  • 给指定value的顺序号添加n zincrby zset n value
  • 返回按顺序号从大到小(从小到大)排序后value的索引下标 zrank(zrevrank) zset value
  • 返回指定区间的元素 zrangebyscore zset 1 3 withscores
  • 返回zset指定区间数量 zcount zset 1 3
  • 返回所有元素的数量 zcard zset
  • 删除zset索引在指定区别的元素 zremrangebyrank zset 1 3

redis的数据类型
感谢您的阅读~~