您的位置:首页 > 数据库 > Redis

使用Jedis操作Redis(笔记)

2017-06-17 15:11 393 查看
Redis部署在Linux下,远程使用Jedis包操作Redis的尝试

Jedis连接测试:

public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.0.3",6379);
System.out.println(jedis);
System.out.println(jedis.ping());
}


console:

redis.clients.jedis.Jedis@3a71f4dd
PONG


使用Jedis操作Linux下部署的redis,需要先在Linux下启动redis服务。

Jedis对象中操作redis的方法与Linux下使用redis的命令基本一致。即redis基本命令都有对应的Jedis方法调用。

public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.0.3",6379);
jedis.set("k1", "v1");
String v1 = jedis.get("k1");
System.out.println(v1);
Set<String> set = jedis.keys("*");
System.out.println(set);
}


console:

v1
[k1]


Jedis事务:

public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.0.3",6379);
Transaction tran = jedis.multi();

tran.set("k2", "1");
tran.get("k2");
List<Object> list = tran.exec();
System.out.println(list);

}


console:

[OK, 1]


Jedis主从复制:

public static void main(String[] args) {
Jedis master = new Jedis("192.168.0.3",6379);
Jedis slave = new Jedis("192.168.0.2",6379);
slave.slaveof("192.168.0.3", 6379);

master.set("k3", "v3");
String value = slave.get("k3");
System.out.println(value);
}


console:

v3


Jedis连接池

工具类:

public class JedisPoolUtil {

private static volatile JedisPool jedisPool = null;

private JedisPoolUtil(){}

public static JedisPool getJedisPoolInstance() {
if(null == jedisPool) {
synchronized (JedisPoolUtil.class){
if(null == jedisPool) {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(32);//最多有多少个空闲的Jedis实例
poolConfig.setMaxTotal(1000);//在低版本Jedis中使用 setMaxActive(),可以分配多少个Jedis实例,-1表示无限制
poolConfig.setMaxWaitMillis(100*1000);//等待100秒,在低版本是setMaxWait(),连接一个Jedis实例的最大等待时间
poolConfig.setTestOnBorrow(true);//获得一个Jedis实例时检测连接可用性,true表示连接均可用

jedisPool = new JedisPool(poolConfig,"192.168.0.3",6379);
}
}
}
return jedisPool;
}

public static void release(JedisPool jedisPool,Jedis jedis) {
if(null != jedis) {
jedis.close();
}
}

}


JedisPool测试:

public static void main(String[] args) {
JedisPool jedisPool = JedisPoolUtil.getJedisPoolInstance();
Jedis jedis = null;
try {
jedis = jedisPool.getResource();

jedis.set("k11","v11");
System.out.println(jedis.get("k11"));
}catch(Exception e) {
e.printStackTrace();
}finally {
JedisPoolUtil.release(jedisPool, jedis);
}
}


console:

v11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis jedis nosql