Redis多数据库特性
一个Redis最多可连接16个数据库,下标从0-15,默认连接的是下标0 号数据库
Demo代码
代码语言:javascript复制import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Transaction;
/**
* @Author: www.itze.cn
* @Email: 814565718@qq.com
*/
public class RedisKeyDemo {
/**
* Jedis连接池连接
*/
public static Jedis getJedisByPool() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//设置最大连接数
jedisPoolConfig.setMaxTotal(30);
//设置最大空闲数
jedisPoolConfig.setMaxIdle(10);
//获取连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "192.168.06.37", 6379);
return jedisPool.getResource();
}
/**
* Redis key常用操作
*/
public static void keysMethod(){
Jedis jedis = RedisKeyDemo.getJedisByPool();
jedis.keys("*");//查看所有key
jedis.keys("set?");//查看所有以set开头的key,eg:sete/set1
jedis.del("set1","aw");//删除指定key
jedis.exists("set1");//判断指定key是否存在
jedis.rename("oldKeyName","newKeyName");//重命名key名字
jedis.expire("set1",10);//设置key值过期事件,单位秒
jedis.ttl("set1");//查看key值有效期剩余时间,没有设置则返回-1
jedis.type("set1");//获取指定key的类型
}
/**
* Redis相关特性
* 多数据库
* 一个Redis最多可连接16个数据库,下标从0-15
* 默认连接的是下标0 号数据库
*/
public static void dataBase(){
Jedis jedis = RedisKeyDemo.getJedisByPool();
jedis.select(1);//切换数据库,选取1号数据库,默认0号数据库
jedis.move("hello",1);//将key值hello移到1号数据库
/**
* 事物相关操作
* multi:开启一个事物
* 在此之后的命令都将被放到队列当中直到exec的执行
* exec:提交
* discard:回滚
*/
jedis.set("sw","1");
Transaction multi = jedis.multi();//开启事物
/**
* sw增加1,注意,这里只是放入队列
* 此时如果去连接Reids,get sw这个key,返回结果仍是1,
* 应为当前事物并没有提交
*/
jedis.incr("sw");
/**
* 提交事物
* 执行过exec之后再去连接Redis,get sw,返回结果才是2
*/
multi.exec();
/**
* *************************************************
* 回滚操作
*/
jedis.set("a1","jack");
Transaction multi1 = jedis.multi();//开启事物
jedis.set("a1","tom");
/**
* 正常情况这里提交事物之后a1将变为tom
* 执行回滚操作,之后get a1 仍为jack
*/
multi.discard();//回滚
}