一 Redis可缓存的数据类型
String,List,Hash,Set,ZSet
二 Redis常见的命令
2.1 String类型的命令
- GET -获取key值,存在返回value,不存在返回特殊字符:nil
- INCR -将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
这是一个针对字符串的操作,因为 Redis 没有专用的整数类型,所以 key 内储存的字符串被解释为十进制 64 位有符号整数来执行 INCR 操作。
- INCRBY 将 key 所储存的值加上增量 increment 。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。DECR 和DESCBY 相反,减量。
//INCRBY key increment redis> SET rank 50 OK redis> INCRBY rank 20 (integer) 70
- MSET mset key value [key value ...] 同时设置一个或多个 key-value 对,是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。总是返回 OK (因为 MSET 不可能失败)。
jedis.mset(key,value,key1,value1,key2,value2);
同理MSETNX设置的 key都不存在时,才添加
jedis.msetnx(key,value,key,value,key,value);
- MGET 获取值MGET时候就比较简单,获取多个key的z
jedis.mget(key,key,key);
- SET
- SETEX 设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。成功返回OK;
jedis.set("key", "value", "EX", seconds); 等同于 jedis.setex("key",seconds,"value");
类似于
jedis.set(key,value); jedis.expire(key,1000);//设置生存时间1000s
不同之处是, SETEX 是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在 Redis 用作缓存时。
- SETPX 设置键的过期时间为 millisecond 毫秒,SET key value PX millisecond 效果等同于 PSETEX key millisecond value ,成功返回OK;
jedis.set("key", "value", "PX", milliseconds); 等同于 jedis.psetex("key",milliseconds,"value");
- SETNX 『SET if Not eXists』只在键不存在时,才对键进行设置操作。 成功返回1,失败0 。
XX :只在键已经存在时,才对键进行设置操作,成功返回1,失败0。
jedis.set("key", "value", "NX");等同于 jedis.setnx("key", "value"); jedis.set("key", "value", "XX");
EX 、PX和 NX、XX组合使用
jedis.set(key,value,"NX","EX",1000);//不存在时才添加,成功返回1,不成功返回0,过期时间 1000s
jedis.set(key,value,"XX","PX",10000);//存在时才添加,成功返回1,不成功返回0,过期时间 10000ms
2.2 Hash(hash表)常见命令
- HDEL HDEL key field [field ...] 删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
# 删除单个域 redis> HDEL abbr a (integer) 1 # 删除不存在的域 redis> HDEL abbr not-exists-field (integer) 0 # 删除多个域 redis> HDEL abbr b c (integer) 2
- HEXISTS HEXISTS key field 查看哈希表 key 中,给定域 field 是否存在。
redis> HEXISTS phone myphone (integer) 0 redis> HSET phone myphone nokia-1110 (integer) 1 redis> HEXISTS phone myphone (integer) 1