String数据类型 String是redis中最基础的数据类型,是二进制安全的,可以包含任何数据,redis中一个String类型的value大小最多可以是512M
操作字符串的指令:
get < key > 查询对应键值
set < key > < value > 添加键值对
append < key > < value > 将给定的value添加到原值得末尾
strlen < key > 获取值的长度
setnx < key > < value > 只有key不存在时添加键值对
incr < key > 将key中存储的数字值增1(只对数字值操作),如果为空,则设置为1
decr < key > 将key中存储的数字值减1(只对数字值操作),如果为空,则设置为-1
incrby / decrby < key > < 步长 > 将key中的值自增减,自定义步长(就是一次加减多少)
mset < key1 > < value1 > < key2 > < value2 > … 一次添加多个键值对
mget < key1 > < key2 > … 一次获取多个键的值
msetnx < key1 > < value1 > < key2 > < value2 > … 一次添加若干个不存在的键值对,只有所有键值对不存在的时候添加
getrange < key > < 起始位置 > < 结束位置 > 获取key值得字串,起始位置和结束位置都包含
setrange < key > < 起始位置 > < value > 替换key值中得字串,从起始位置开始
setex < key > < seconds > < value > 添加键值对得同时设置过期时间
getset < key > < value > 以新换旧,设置新值得同时获取旧值
List数据类型 单键多值,就是简单得字符串列表,底层是一个双向链表
对列表得操作命令:
lpush / rpush < key > < value1 > < value2 > … 从左边/右边添加若干个值
lpop / rpop < key > 从左边/右边取出一个值,当所有得值被取完,则这个键也将消亡
rpoplpush < key1 > < key2 > 从key1得右边取出一个值,添加到key2列表得左边
lrange < key > < start > < stop > 按照下表获取若干元素(从左到右)
lindex < key > < index > 按照下表获取元素(从左到右)
llen < key > 获取列表得长度
linsert < key > before | after < value > < newvalue > 在指定得元素前或者后面添加一个元素
lrem < key > < n > < value > 从左边删除n个value ,n为0得时候,删除所有得value
set数据类型 redis中得set对外提供的功能与List类似是一个列表得功能,特殊之处set可以排重,set是一个无序的集合,底层是一个value值为null的hash表,所有添加,删除,查找的复杂度都是o(1)
对set的操作命令:
sadd < key > < value1 > < value2 > … 将一个或多个元素添加到key集合中,如果集合中存在要添加的元素,则忽略该元素
smembers < key > 取出集合的所有值
sismembers < key > < value > 判断集合key中是否存在value,如果不存在返回0,有则返回1
scard < key > 返回key集合中元素的个数
srem < key > < value1 > < value2 > … 删除集合中某些元素
spop < key > 随机从key集合中取出一个元素
srandmembers < key > < n > 随机从集合中取出n个元素,而且不会从集合中删除这些元素
sinter < key1 > < key2 > 返回两个集合的交集元素
sunion < key1 > < key2 > 返回两个元素的并集元素
sdiff < key1 > < key2 > 返回两个集合的差集元素
hash数据类型 redis中hash是一个键值对集合,适合用于存储对象,类似于Java中的map
对hash的操作命令:
hset < key > < field > < value > 给key集合中添加 一个键值对
hget < key > < field > 从key集合中取出键为field的值
hmset < key > < field1 > < value1 > < field2 > < value2 > … 向key集合中添加多个键值对
hexists < key > < field > 查看名为key的hash表中是否存在field
hkeys < key > 查看名为key的hash表中所有field
hvals < key > 查看名为key的hash表中所有value
hgetall < key > 查看所有的键值
hincrby < key > < field > < increment > 为名为key的hash表中field的值加上增量increment
hsetnx < key > < filed > < value > 如果名为key的hash表中不存在field,则向其中添加该键值对
zset数据类型 redis中有序集合zset与普通集合set非常相似,只是zset中的每一个元素比set的中的每一个元素多一个评分,zset就是按照这个评分来实现排序的,而且评分可以重复,因此可以从zset集合中按照评分范围和次序来查找元素。
对zset的操作命令:
zadd < key > < score1 > < value1 > < score2 > < value2 > … 向名为key的zset集合中添加若干个评分为score的value
zrange < key > < start > < stop > [withscore] 返回名为key的zset集合中start到stop的元素,如果带上withscore就会连评分一起返回
zrangebyscore < key > min max [withscore] [limit offset count] 返回zset集合中min到max(包含min,max)之间的元素
zrevrangebyscore < key > max min [withscore] [limit offset count] 这是zrangebyscore的逆序形式
zincrby < key > < increment > < value > 为元素的评分加上增量increment
zrem < key > < value > 删除指定的value
zcount < key > < min > < max > 统计集合中分数区间元素的个数
zrank < key > < value > 返回value在集合中的排名,从零开始