目录
- 一、String
- Ⅰ、set、get、append、strlen、exists
- Ⅱ、incr、decr、incrby、decrby
- Ⅲ、getset、setnx
- Ⅳ、setex、ttl
- Ⅴ、mget、mset、msetnx
- 二、List
- Ⅰ、lpush、lpushx、lrange
- Ⅱ、lpop、llen
- Ⅲ、lrem、lset、lindex、ltrim
- Ⅳ、linsert
- Ⅴ、rpush、rpushx、rpop、rpoplpush
- 三、Hash
- Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx
- Ⅱ、hincrby
- Ⅲ、hgetall、hkeys、hvals、hmset、hmget
- 四、set
- Ⅰ、sadd、smembers、scard、sismember
- Ⅱ、spop、srem、srandmember、smove
- 五、Sorted Set
- Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank
- Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore
- Ⅲ、zrevrange、zrevrangebyscore、zrevrank
一、String
String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等
Ⅰ、set、get、append、strlen、exists
append key value | |
#追加键值,并返回追加后的长度(若键不存在,则相当于创建键) | |
exists key [key...] | |
#判断该键是否存在,存在返回1,否则返回0 | |
set key value [expiration EX seconds|PX milliseconds] [NX|XX] | |
#创建键 | |
get key | |
#查看键值 | |
strlen key | |
#获取指定key的字符长度 |
Ⅱ、incr、decr、incrby、decrby
需要值为整数,否则会报错
incr key | |
#键值增1 | |
decr key | |
#键值减1 | |
incrby key increment | |
#键值增加指定值 | |
decrby key increment | |
#键值减少指定值 |
Ⅲ、getset、setnx
GETSET key value | |
#获取key值并返回,同时给key设置新值 | |
SETNX key value | |
#不存在键的话执行set操作,存在的话不执行 |
Ⅳ、setex、ttl
setex key seconds value | |
#设置指定key的过期时间为指定值 | |
ttl key | |
#tt1命令查看指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。获取已过 | |
期的Key将返回(nil) |
Ⅴ、mget、mset、msetnx
MSET key value [key value …] | |
#批量设置键-值对 | |
MGET key [key …] | |
#批量获取键值对 | |
MSETNX key value [key value …] | |
#批量设置键值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0 |
二、List
列表的元素类型为String,按照插入顺序在列表的头部和尾部添加元素
Ⅰ、lpush、lpushx、lrange
LPUSH key value [value …] | |
#在头部(左侧)依次插入列表元素 | |
LPUSHX key value | |
#键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量 | |
LRANGE key start stop | |
#取从位置索引start到位置索引stop的所有元素(所以以0开始) | |
lrange key 0 -1 | |
#展示所有 |
Ⅱ、lpop、llen
lpop key | |
#移除并返回键的第一个元素 | |
llen key | |
#获取表中元素数量 |
Ⅲ、lrem、lset、lindex、ltrim
lrem key count value | |
#从头部开始删除count个为value的元素,并返回实际删除数量 | |
lset key index value | |
#将位置索引为index的元素设置新值value | |
lindex key index | |
#获取索引为index的元素 | |
ltrim key start stop | |
#仅保留从位置索引start到索引stop的元素 |
lrem删除一个符合value为a的值
lset将索引为1(从0开始,即第二个)的元素替换为新值a,获取索引为2的元素
只保留索引0~2的元素
Ⅳ、linsert
LINSERT key BEFORE|AFTER pivot value | |
#在元素pivot的前面(做左)或后面(右)插入新元素value |
在c前面插入b
Ⅴ、rpush、rpushx、rpop、rpoplpush
RPUSH key value [value …] | |
#在列表的尾部依次插入value | |
RPUSHX key value | |
#key必须存在才可执行,将value从尾部插入,并返回所有元素数量 | |
RPOP key | |
#在尾部弹出(移除)一个元素,并返回该元素 | |
RPOPLPUSH source destination | |
#在key1的尾部弹出一个元素并返回,将它插入key2的头部 |
rpush从test尾部依次插入jklmn
rpop尾部第一个元素
将test的尾部元素m弹出,同时再插入到test1的头部(原子性的完成这两步操作),也可以作用在test自己身上,将最后一个元素提到第一个
三、Hash
Hash用于存储对象,可以采用这样的命名方式(hash格式):对象列别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值
Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx
hset key field value | |
#创建key | |
hget key field | |
#获取key-value | |
hexists key field | |
#key是否存在 | |
hdel key field [field ...] | |
#删除指定key | |
hlen key | |
#key字段数 | |
hsetnx key field value | |
#不重复的创建key,即只有指定的key不存在才可以创建 |
Ⅱ、hincrby
hincrby key field increment | |
hash类型(整数)值指定增长值 | 给指定的
key hash kk字段设值为4,hincrby1后kk值为5
Ⅲ、hgetall、hkeys、hvals、hmset、hmget
hgetall key | |
#输出指定字段的所有字段以及值 | |
hkeys key | |
#输出指定键中的所有字段名 | |
hvals key | |
#输出指定键中的所有字段值 | |
hmset key field value [field value ...] | |
#一次性设置多个字段 | |
hmget key field [field ...] | |
#一次性获取多个字段 |
四、set
无序集合,元素类型为string类型,元素具有唯一性,不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算
应用范围:
可以使用Redis的Set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,Set数据类型会自动保证IP地址的唯一性。充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如购买某一电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们向获取有哪些客户同时购买了这两种商品时,Set的intersections命令就可以充分发挥它的方便和效率的优势
Ⅰ、sadd、smembers、scard、sismember
sadd key member [member ...] | |
#创建键并加入member | |
smembers key | |
#查看指定key中所有的members | |
scard key | |
#查看指定key中members个数 | |
sismember key member | |
#判断指定key中的member是否存在 |
创建key-set,members为qq、ww、ee、rr,判断qq在其中返回1,判断pp不在其中返回0
Ⅱ、spop、srem、srandmember、smove
spop key [count] | |
#随机的移除并返回key中的某一成员 | |
srem key member [member ...] | |
#从指定key中移除指定member | |
srandmember key [count] | |
#随机输出指定数量的members | |
smove source destination member | |
#将一个member移动到另一个key中 |
五、Sorted Set
有序集合,元素类型为string,元素具有唯一性,不能重复。每个元素都会关联一个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同
应用范围:
可以用于一个大型在线游戏的积分沛航胖,每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。当然我们也可以利用ZRANK命令通过usename来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息。Sorted-Set类型还可用于构建索引数据
Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank
zadd key [NX|XX] [CH] [INCR] score member [score member ...] | |
#向有序集合内添加members,或更新已存在的score | |
zcard key | |
#获取key中的members数量 | |
zcount key min max | |
#输出满足 min <= score <= max 条件的成员数量 | |
zrem key member [member ...] | |
#删除成员member并返回操作后的成员数量 | |
zincrby key increment member | |
#让指定的成员以指定increment增加 | |
zrange key start stop [WITHSCORES] | |
#查看成员,从0开始 | |
zrank key member | |
#获取成员的索引位置 |
Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] | |
#获取满足min <= score <= max 的成员 | |
zremrangebyrank key start stop | |
#删除满足min <= rank <= max 的成员 | |
zremrangebyscore key min max | |
#删除满足min <= score <= max 的成员 |
Ⅲ、zrevrange、zrevrangebyscore、zrevrank
zrevrange key start stop [WITHSCORES] | |
#以位置索引从高到低的方式获取并返回此区间内的成员 | |
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] | |
#获取满足 min <= score <= max 的成员 | |
zrevrank key member | |
#获取指定成员的索引位置 |