1.Redis的数据类型包含
String: 字符串
Hash: 哈希表
List: 列表
Set: 集合
zset:Sort Set 有序集合
Redis命令手册:http://doc.redisfans.com/
2.String类型
String是redis最基本的类型。一个key对应一个value
String类型是二进制安全的,意味着可以包含任意类型。
比如jpg图片或者序列化的对象,简单的字符串,数值等。
String类型的值最大只能存储512MB。
2.1.结构图
2.2.常用命令
命令 ./redis-cli --raw 描述
set key value 设置指定key的值,如果存在将修改
get key 获取指定key的值
getset key value 将key的值设置为value,并返回旧值
mget key1 key2 … 获取多个指定key的值
mset key value key value… 同时设置多个key-value的值
setex key seconds value 设置指定key的值,并设置过期时间,单位秒.超时返回nil
setnx key value 只有key不存在时设置key的值,存在就不设置,返回0
setrange key index str 替换字符串,从index开始后面的字符串替换成str
strlen key 返回key存储的字符串的长度
incr key 将key中存储的值+1
incrby key num 将key中存储的值+num
incrbyfloat key num 将key中存储的值加上给定的浮点数值
decr key 将key中存储的值-1
decrby key num 将key中存储的值-num
append key value 将指定的value追加到该key原来value的末尾
del key 删除指定的key
3.Hash类型
hash是一个键值对(key-value)集合。hash特别适合用于存储对象。
将一个对象类型类型存储到hash类型要比存储到String类型占用空间更少。
每个hash可以存储40多亿个键值对。
3.1.结构图
3.2.常用命令
命令 描述
hset key field value 将哈希表key中的字段field的值设置为value
hmset key field value
field value… 同时将多个field-value设置到哈希表key中
hsetnx key field value 只有再field不存在时,设置字段的值
hget key field 获取hash中指定字段的值
hmget key field field 获取hash中多个字段的值
hkeys key 获取hash中所有的字段
hvals key 获取hash中所有的值
hgetall key 获取hash中所有的字段和值
hexists key field 查找hash的key中指定字段是否存在
hdel key field field … 删除hash的key中一个或多个字段
hlen key 获取hash中所有字段的数量
4.List类型 (String类型的有序集合)
List类型是一个链表的集合。List集合中存储多个字符串值的列表。
List是一个双向链表结构,往集合中的头部和尾部都可以添加删除元素。
List列表可以作为栈,又可以作为队列使用。
list每一个列表可以存储40多亿元素。
4.1.结构图
4.2.常用命令
命令 描述
lpush key value1 [value2] 将一个或多个值插入到list的头部。(栈:先进后出)
rpush key value1 [value2] 将一个或多个值插入到list的尾部 (队列:先进先出)
lpop key 移除并获取列表的第一个元素
rpop key 移除并获取列表的最后一个元素
lset key index value 设置列表指定索引的元素值
lindex key index 获取列表指定索引的元素值
llen key 获取列表的元素长度
lrang key start stop 获取列表指定范围内的元素
lrem key count value 移除列表的元素,返回删除的个数
ltrim key start stop 对列表进行截取,只保留指定区间的列表元素.包含结束位置
5.Set类型 (String类型的无序集合)
Set集合是String类型值的无序不可重复的集合。
Set集合最大优势可以进行交集,并集和差集。
Set每一个集合可以存储40多亿元素
5.1.结构图
5.2.常用命令
命令 描述
sadd key value1 value2… 往set集合中添加一个或多个元素
srem key value1 value2… 移除set集合中一个或多个成员
scard key 获取set集合的成员数
smembers key 获取集合中的所有成员
sismember key member 查找member元素再集合中是否存在
smove src desc member 将member元素从src集合移动到desc集合
sdiff key1 key2 返回第一个集合和其他集合之间的差集
sdiffstore key1 key2 key3 返回前几个集合中的差集,并存储到另一个集合中
sinter key key2 返回给定的集合之间的交集
sinterstore key key2 key3 返回给定的集合之间的交集,并存储到另一个集合中
sunion key1 key2 返回给定的集合之间的并集
sunionstore key1 key2 返回给定的集合之间的并集,并存储到另一个集合中
6.Sort Set类型命令
在set类型的基础上,加上排序的调整。
往zset中添加每个元素时需要提供一个关联的double类型的分数,
Redis通过分数来为集合中的元素进行从小到大进行排序。
Zset中成员是唯一的,元素唯一,但是分数是可以重复。
6.1.结构图
6.2.常用命令
命令 描述
zadd key score1 value1… 往集合中添加一个或多个元素
zcard key 获取集合的元素的数量
zcount key min max 返回集合中指定分数区间的元素
zincrby key num value 对集合中指定value成员的分数增加num
zrange key start stop [withscores] 获取集合中指定索引范围的元素。
withscores:显示分数
zrank key value 返回集合中指定元素的索引
zrem key value1 value2… 移除集合中的一个或多个成员
zscore key value 返回集合中指定元素的分数值