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
感谢您的阅读~~