目录
1.String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
基本命令操作:
set:设置一个key的value值,[ ex seconds],可以设置过期时间(秒),过期后该键值对自动销毁,(ex为expire缩写)
mset:设置多个key的value
setnx:当key不存在时,设置key的value,即只能新增不能修改
setex:设置key对应的过期时间,同时也可修改value
get:获取key的value值
mget:获取多个key的value
getrange:获取某个key对应value的子字符串,依据起始和终止索引值来获取
getset:设置key的value值时,先获取输出原value
strlen:获取key的长度
2.Hash(哈希)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field(暂时称为属性)和value的映射表,hash特别适合用于存储对象。
每个 hash 可以存储 2^32 - 1 键值对(40多亿)。
基本命令操作:
hset:设置一个key的一个field和value
hmset:设置一个key的多个field和values
hsetnx:设置一个key的一个field和value,当该key和field不存在时生效
hget:获取一个key的一个field的value
hgetall:获取key的所有field和value
hmget:获取key的多个field的value
hlen:获取某个key的field数量(该key的长度)
hstrlen:获取某个key的某个field的value的长度
hexists:判断key中是否存在某个field
hdel:删除key的某个field
hvals:获取key的所有属性的values(不包括field)
3.List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
列表最多可存储 2^32 - 1 元素 (40多亿)。
基本命令操作:
lpush:在list左侧添加一个元素
rpush:在list右侧添加一个元素
lpushx:当list存在时,在list左侧添加一个元素
rpushx:当list存在时,在list右侧添加一个元素
linsert:向list的某个位置插入一个元素,即可以任意位置添加,不一定只是首位两端
lset:修改list的某个位置的元素,需要指定index
lpop:删除list左侧第一个元素(index=0)
rpop:删除list右侧第一个元素(index=-1)
blpop:删除,并获得该列表中的第一元素,或阻塞,直到有一个可用,需要指定阻塞时长
brpop:删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用,需要指定阻塞时长
brpoppush:弹出一个列表的值,将它推到另一个列表,并返回它;或阻塞,直到有一个可用,需要指定阻塞时长
rpoplpush:两个列表之间元素的移动,将list1的最后一个元素(最右边)移动到list2的第一个元素(最左边)
lrange:获取list的某一段索引区域的元素,(lrange key start end)
lrem:删除list的某些元素,可以设定删除个数,因为列表中可以存在相同元素,这个指定删除相同元素的个数,
lindex:获取列表中某个位置的元素
4.Set(集合)
Redis的Set是string类型的无序集合,且具有去重功能。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
基本命令操作:
sadd:向set中添加一个元素
spop:从set中删除一个元素
srem:从set中删除一个或多个元素
sismember:判断某个元素是否在set中存在
smembers:获取set的所有元素
srandmember:随机从set中获取指定数量个元素
scard:获取set中元素数量
sdiff:比较多个set集合,输出在第一个set中存在,但其他set中不存在的元素
sdiffstore:比较多个set集合,输出在第一个set中存在,但其他set中不存在的元素,并将输出的结果元素保存到另一个set中
sinter:比较多个set集合,输出他们的交集的元素
sinterstore:比较多个set集合,输出他们的交集的元素,并将输出的结果元素保存到另一个set中
smove:两个set之间元素的移动,将某个元素从set1移动到set2
sunion:获取多个set集合的并集的元素
sunionstore:获取多个set集合的并集的元素,并保存到另一个set中
sscan:迭代set中的元素
5.zset(sorted set:有序集合)
有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
基本命令操作
zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcard key 获取有序集合的成员数
zcount key min max 计算在有序集合中指定区间分数的成员数
zincrby key increment member 有序集合中对指定成员的分数加上增量 increment
zinterstore destination numkeys key [key ...] 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
zlexcount key min max 在有序集合中计算指定字典区间内成员数量
zrange key start stop [withscores] 通过索引区间返回有序集合成指定区间内的成员
zrangebylex key min max [limit offset count] 通过字典区间返回有序集合的成员
zrangebyscore key min max [withscores] [limit] 通过分数返回有序集合指定区间内的成员
zrank key member 返回有序集合中指定成员的索引
zrem key member [member ...] 移除有序集合中的一个或多个成员
zremrangebylex key min max 移除有序集合中给定的字典区间的所有成员
zremrangebyrank key start stop 移除有序集合中给定的排名区间的所有成员
zremrangebyscore key min max 移除有序集合中给定的分数区间的所有成员
zrevrange key start stop [withscores] 返回有序集中指定区间内的成员,通过索引,分数从高到底
zrevrangebyscore key max min [withscores] 返回有序集中指定分数区间内的成员,分数从高到低排序
zrevrank key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
zscore key member 返回有序集中,成员的分数值
zunionstore destination numkeys key [key ...] 计算给定的一个或多个有序集的并集,并存储在新的 key 中
zscan key cursor [match pattern] [count count] 迭代有序集合中的元素(包括元素成员和元素分值)
参考文章: