Redis数据类型
字符串string
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value;
string类型是二进制安全的。意思是redis的string可以包含任何数据。如jpg图片或者序列化的对象 ;
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M;
列表list
redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
集合set
redis的set是string类型的无序集合。它是通过HashTable实现的。
有序集合zset
redis的zset 和 set 一样也是string类型元素的集合,且不允许重复的成员;
不同的是每个元素都会关联一个double类型的分数;
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复;
哈希hash
redis的hash 是一个键值对集合;
redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象;
类似Java里面的Map<String,Object>
redis常见的操作命令
官方地址:http://redisdoc.com/
字符串string
命令 | 描述 |
keys * | 获取所有的key |
set key value | 设置指定 key 的值 |
get key | 获取指定 key 的值 |
incr key | 将 key 中储存的数字值增一 |
decr key | 将 key 中储存的数字值减一 |
getset key value | 先获取,再设置 |
incrby key count | 将key 中储存的数字值增加指定数量 |
decrby key count | 将key 中储存的数字值减少指定数量 |
append key value | 如果 key 已经存在并且是一个字符串,将 value 追加到 key 原来的值的末尾;若无,则设置一个 |
del key | 删除key |
列表list
命令 | 命令描述 |
lpush key value1 value2... | 将一个或多个值插入到列表头部(左边),没有的话会创建一个 |
rpush key value1 value2... | 在列表中添加一个或多个值(右边),没有的话会创建一个 |
lpop key | 左边弹出一个 相当于移除第一个 |
rpop key | 右边弹出一个 相当于移除最后一个 |
lrange key startindex endindex | 获取列表指定范围内的元素eg:(0 -1:查看所有, 0 3查看前4个) |
llen key | 返回指定key所对应的list中元素个数 |
lrem key count member | 在key中移除指定个数的成员count > 0:从左往右移除指定个数,count < 0:从右往左移除指定个数, count = 0:清空list中指定元素 |
lset key index value | 通过索引设置列表元素的值(0代表第一个元素, 1代表第二个,-1代表尾元素), |
linsert key before|after pivot value | 在pivot元素前或者元素后插入一个值 |
rpoplpush resource destination | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
集合set
命令 | 命令描述 |
sadd key member1 [member2] | 向集合添加一个或多个成员 |
srem key member1 [member2] | 移除一个成员或者多个成员 |
smembers key | 返回集合中的所有成员,查看所有 |
sismember key member | 判断一个set中是否有指定的member |
sdiff key1 key2 | 返回给定集合的差集 |
sunion key1 key2 | 返回给定集合的并集 |
sinter key1 key2 | 返回给定集合的交集 |
scard key | 获得set中成员的数量 |
srandmember key | 随机返回set的一个成员 |
sdiffstore key1 key2 key3 | 将差异的部分插入key1 |
有序集合zset
命令 | 命令描述 |
zadd key score1 member1[ score2 member2] | 添加一个或者多个 |
zcard key | 获得集合成员数量 |
zscore key member | 获取元素的得分 |
zrem key member1[member2] | 删除一个或者多个成员 |
zrange key startindex endindex [withscores] | 按照分数的从小到大的顺序展示所有的元素 |
zrevrange key start stop [withscores] | 按照分数的从大到小的顺序展示所有的元素 |
哈希hash
命令 | 命令描述 |
hset key filed value | 将哈希表 key 中的字段 field 的值设为 value |
hmset key field1 value1 [field2 value2]... | 同时将多个 field-value (字段-值)对设置到哈希表 key 中 |
hget key filed | 获取存储在哈希表中指定字段的值 |
hmget key filed1 filed2 | 获取多个给定字段的值 |
hgetall key | 获取在哈希表中指定 key 的所有字段和值 |
hdel key filed1 [filed2] | 删除一个或多个哈希表字段 |
del key | 删除整个hash(对象)s |
hlen key | 获取哈希表中字段的数量 |
hincrby key filed count | 为哈希表 key 中的指定字段的浮点数值加上增量 count。 |
hkeys key | 获取所有哈希表中的字段 |
hvals key | 获得所有的value |
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在。 |