Key值通配符
既然是数据库,肯定有模糊查询的需求,Redis允许使用通配符,这一点,在做一些批量删除的时候,会非常实用
*: 通配任意多个字符
?: 通配单个字符
[]: 通配括号内的某1个字符
String类型
因为存在一种技术,叫序列化,图省事的话,只使用这一种,就够用了
package cn.swsk.xbry.api.v1.md1001;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.exceptions.JedisDataException;
/**
* @author css
* @date 2019/9/24 22:20
*/
public class Test {
public static void main(String[] args) throws InterruptedException {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(25);
config.setMaxIdle(20);
config.setMinIdle(5);
try (
JedisPool pool = new JedisPool(config, "127.0.0.1", 6379);
Jedis jedis = pool.getResource()) {
jedis.select(0);
//type of String
String key1 = "key1", key2 = "key2";
if (!jedis.exists(key1)) {
jedis.set(key1, "test");
}
//设置key生存时间,当key过期时,它会被自动删除。 Time为秒数
jedis.expire(key1, 1);
//Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
jedis.setex(key1, 20, "1312312");
//查看key的生存时间的剩余时间,若为-1,说明key已过期
System.out.println(jedis.ttl(key1));
System.out.println(jedis.get(key1));
Thread.sleep(1200);
System.out.println(jedis.get(key1));
try {
//key1会被直接覆盖, key2不存在时报错
jedis.rename(key2, key1);
} catch (JedisDataException e) {
e.printStackTrace();
//TODO: no such key
}
}
}
}
知识兔