一.五大数据类型简介
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
String(字符串)
string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
Hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
Set(集合)
Redis 的 Set 是 string 类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
二.哪里去获取redis常见数据类型操作命令
http://redisdoc.com/
三.五大数据类型相关命令
1.Redis_key
命令 |
解释 |
keys * |
列出所有key |
exists key的名字 |
判断某个key是否存在,返回值1存在,返回值0不存在 |
move key db |
当前库就没有了,被移除到另一个库 |
del key |
删除 |
expire key 秒钟 |
为给定的key设置过期时间 |
ttl key |
查看还有多少秒过期,-1表示永不过期,-2表示已过期 |
type key |
查看key是什么类型 |
2.字符串(String)
命令 |
解释 |
APPEND key value |
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。 |
STRLEN key |
返回 key 所储存的字符串值的长度。 |
INCR key |
将 key 中储存的数字值增一。 |
DECR key |
将 key 中储存的数字值减一。 |
INCRBY key increment |
将 key 所储存的值加上给定的增量值(increment) 。 |
DECRBY key decrement |
key 所储存的值减去给定的减量值(decrement) 。 |
GETRANGE key start end |
返回 key 中字符串值的子字符 |
SETRANGE key offset value |
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。 |
SETEX key seconds value |
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。 |
SETNX key value |
只有在 key 不存在时设置 key 的值。可以防覆盖 |
MSET key value [key value …] |
同时设置一个或多个 key-value 对。 |
MGET key key… |
同时获取多个value |
3.列表(List)
命令 |
解释 |
LPUSH key value1 [value2] |
将一个或多个值插入到列表头部 |
RPUSH key value1 [value2] |
在列表中添加一个或多个值 |
LRANGE key value1 value2 |
将列表第value1到value2列出来,如LRANGE list1 0 -1 从第零个元素到最后都列出来 |
LPOP key |
移出并获取列表的第一个元素 |
RPOP key |
移除列表的最后一个元素,返回值为移除的元素。 |
LINDEX key index |
通过索引获取列表中的元素 |
LTRIM key start stop |
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 |
LLEN key |
获取列表长度 |
RPOPLPUSH key1 key2 |
将key1列表中的最后一位移到key2列表的头 |
LSET key index value |
通过索引设置列表元素的值 |
它是一个字符串链表,left,right都可以添加
如果键不存在,创建新的链表
如果键已存在,新增内容
如果值全部移除,对应的键也就消失了
链表的头和尾操作效率都是极高的,但是在中间就不行了
4.集合(set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
命令 |
解释 |
SADD key member1 [member2] |
向集合添加一个或多个成员 |
SISMEMBER key member |
判断 member 元素是否是集合 key 的成员 |
SMEMBERS key |
返回集合中的所有成员 |
SCARD key |
获取集合的成员数 |
SREM key member1 [member2] |
移除集合中一个或多个成员 |
SPOP key |
移除并返回集合中的一个随机元素 |
SMOVE key1 key2 key1中的值 |
将元素从key1集合移动到key2集合 |
SDIFF key1 key2 |
差集 |
SINTER key1 key2 |
交集 |
SUNION key1 key2 |
并集 |
5.哈希(hash)
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
KV模式不变,但V是一个键值对
命令 |
解释 |
HSET key field value |
将哈希表 key 中的字段 field 的值设为 value 。如HSET user id 11 |
HGET key field |
获取存储在哈希表中指定字段的值。如HGET user id |
HMSET key field1 value1 [field2 value2 ] |
同时将多个 field-value (域-值)对设置到哈希表 key 中。如HMSET customer id 02 age 16 name zhangshan |
HMGET key field1 [field2] |
获取所有给定字段的值 |
HGETALL key |
获取在哈希表中指定 key 的所有字段和值 |
HDEL key field1 [field2] |
删除一个或多个哈希表字段 |
HLEN key |
获取哈希表中字段的数量 |
HEXISTS key field |
查看哈希表 key 中,指定的字段是否存在。 |
HKEYS key |
获取所有哈希表中的字段 |
HVALS key |
获取哈希表中所有值 |
HINCRBY key field increment |
为哈希表 key 中的指定字段的整数值加上增量 increment 。 |
HINCRBYFLOAT key field increment |
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。 |
HSETNX key field value |
只有在字段 field 不存在时,设置哈希表字段的值。 |
6.有序集合zset
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
命令 |
解释 |
ZADD key score1 member1 [score2 member2] |
向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZCARD key |
获取有序集合的成员数 |
ZCOUNT key min max |
计算在有序集合中指定区间分数的成员数 |
ZINCRBY key increment member |
有序集合中对指定成员的分数加上增量 increment |
ZREM key member [member …] |
移除有序集合中的一个或多个成员 |
ZSCORE key member |
返回有序集中,成员的分数值 |
ZREVRANGE key start stop [WITHSCORES] |
返回有序集中指定区间内的成员,通过索引,分数从高到低 |
ZREVRANGEBYSCORE key max min [WITHSCORES] |
返回有序集中指定分数区间内的成员,分数从高到低排序 |
小熊奶黄包
发布了20 篇原创文章 · 获赞 0 · 访问量 152
私信
关注