命令(二)"/>
Redis命令(二)
1). 通用命令
-
KEYS pattern
redis> KEYS *name* 1) "firstname" 2) "lastname" redis> KEYS a?? 1) "age" redis> KEYS * 1) "age" 2) "firstname" 3) "lastname"
总结: *, ?类似于模糊匹配,*可匹配任意多个字符,?仅匹配一个字符,千万不要在大数据量下使用keys *等模糊查询的方式
-
DEL key [key ...] 删除一个或多个key
redis> SET key1 "Hello" "OK" redis> SET key2 "World" "OK" redis> DEL key1 key2 key3 (integer) 2
返回的是删除的key的数量
-
EXISTS key [key ...] 判断key是否存在
redis> SET key1 "Hello" "OK" redis> EXISTS key1 (integer) 1 redis> EXISTS nosuchkey (integer) 0 redis> SET key2 "World" "OK" redis> EXISTS key1 key2 nosuchkey (integer) 2
-
EXPIRE key seconds [NX | XX | GT | LT] 给key设置有效期NX -- Set expiry only when the key has no expiry XX -- Set expiry only when the key has an existing expiry GT -- Set expiry only when the new expiry is greater than current one LT -- Set expiry only when the new expiry is less than current one
redis> SET mykey "Hello" "OK" redis> EXPIRE mykey 10 (integer) 1 redis> TTL mykey (integer) 10 redis> SET mykey "Hello World" "OK" redis> TTL mykey (integer) -1 redis> EXPIRE mykey 10 XX (integer) 0 redis> TTL mykey
-
TTL key 查看key的剩余有效期Starting with Redis 2.8 the return value in case of error changed:The command returns -2 if the key does not exist.The command returns -1 if the key exists but has no associated expire.
redis> SET mykey "Hello" "OK" redis> EXPIRE mykey 10 (integer) 1 redis> TTL mykey (integer) 10
五种基本数据类型:String 、List 、Hash、Set、Sortset
2) String 类型常用的命令:Get 、 Set、Mget、Mset
INCR 让一个整形的key自增1INCRBY 让一个整形的key自增并指定步长INCRBYFLOAT 让一个浮点类型的数字自增并指定步长SETNX 添加一个String类型的键值对,前提是该键不存在,否则不执行SETEX 添加一个String类型的键值对,并且指定有效期
在实际应用中,为了形成层级结构,区分相同的id值,在多个单词间用:隔开,格式如下:
项目名:业务名:类型名:id,例如:ttu:user:1
此时,如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后进行存储:
KEY | VALUE |
ttu:user:1 | {"id": 1, "name": "pet", "age": 18} |
3)Hash类型:HGet 、 HSet、HMget、HMset
HMSET myhash field1 "Hello" field2 "World"HGETALL 获取Hash类型的以Key下所有的field valueHKEYS 获取Hash类型的以Key下所有fieldHVALS 获取Hash类型的以Key下所有VALUEHINCRBY 让一个hash类型的KEY字段值自增并指定步长HSETNX 添加一个hash类型的key的field值,前提是这个field不存在,如果存在则不执行
redis> HMSET myhash field1 "Hello" field2 "World" "OK" redis> HGET myhash field1 "Hello" redis> HGET myhash field2 "World"redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HMGET myhash field1 field2 nofield 1) "Hello" 2) "World" 3) (nil)
4)List类型:与java中的LinkedList类似,可看作一个双向链表结构。
LPUSH key element [element ...] 向列表左侧插入一个或多个元素LPOP key [count] 移除并返回列表左侧的第一个元素,[count]从左弹出多少个元素,没有则返回nilRPUSH key element [element ...] 向列表右侧插入一个或多个元素RPOP key [count] 移除并返回列表右侧的第一个元素,[count]从右弹出多少个元素,没有则返回nilLRANGE key start stop 返回一段角标范围内的所有元素BLPOP key [key ...] timeout BRPOP key [key ...] timeout 在没有元素弹出时等待指定时间,而不是直接返回nil
redis> LPUSH mylist "world" (integer) 1 redis> LPUSH mylist "hello" (integer) 2 redis> LRANGE mylist 0 -1 1) "hello" 2) "world"redis> RPUSH mylist "one" "two" "three" "four" "five" (integer) 5 redis> LPOP mylist "one" redis> LPOP mylist 2 1) "two" 2) "three" redis> LRANGE mylist 0 -1 1) "four" 2) "five"
5)Set类型:
SADD key member [member ...] 向set中添加一个或多个元素SREM key member [member ...] 移除set中的指定元素SCARD key 返回set中元素的个数SISMEMBER key member 判断一个元素是否存在于set中SMEMBERS key 获取set中的所有元素******************************************************************
SINTER key [key ...] 获取key之间的交集,可用于查找共同的好友等操作SDIFF key [key ...] 获取key之间的差集,可用于查找可能认识的人SUNION key [key ...] 获取key之间的并集,
redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SMEMBERS myset 1) "Hello" 2) "World"
6) Sortedset:底层实现是一个跳表(SkipList)加Hash表,经常被用作排行榜
ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member...] 添加一个或多个元素到Sorted set,如果已经存在则更新其score值ZREM key member [member ...] 删除Sorted set 中的一个指定元素ZSCORE key member 获取Sorted set 中的指定元素的Score值ZRANK key member 获取Sorted set中的指定元素的排名ZCARD key 获取Sorted set中的元素的个数ZCOUNT key min max 统计Score值在给定范围内的所有元素的个数ZINCRBY key increment member 让Sorted set中的指定元素自增,步长为指定的increment值ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count][WITHSCORES] 按照Score排序后,获取指定排名范围内的元素ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 按照Score排序后,获取指定Score范围内的元素ZDIFF numkeys key [key ...] [WITHSCORES] 求差集ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]][AGGREGATE <SUM | MIN | MAX>] [WITHSCORES] 求交集ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]][AGGREGATE <SUM | MIN | MAX>] [WITHSCORES] 求并集
这里只记录了常用的相关操作,更多操作详见redis官网。
redis官网command
更多推荐
Redis命令(二)
发布评论