3.1java客户端
Java客户端: Jedis
Maven依赖
redis.clients.jedis:2.9.0
Jedis直连
生成一个Jedis对象,这个对象负责与指定Redis节点进行通信
Jedis(String host, int port, int connectionTimeout, int soTimeout)
host:Redis节点的所在机器的IP
port:Redis节点的端口
connection Timeout:客户端连接超时
soTimeout:客户端读写超时
Jedis jedis = new Jedis("127.0.0.1",6379);
执行操作
String
jedis.set("hello","world"); jedis.get("hello"); jedis.incr("counter");
hash
jedis.hset("myhash","f1","v1"); jedis.hset("myhash","f2","v2"); jedis.hgetAll("myhash");
list ```bash jedis.rpush("mylist","1"); jedis.rpush("mylist","2"); jedis.rpush("mylist",3); jedis.lrange("mylist",0,-1);
set
jedis.sadd("myset","a"); jedis.sadd("myset","b"); jedis.sadd("myset","a"); jedis.smember("mylist");
zset
jedis.zadd("myzset",99,"tom"); jedis.zadd("myzset",66,"peter"); jedis.zadd("myzset",33,"james"); jedis.zrangeWithScores("myzset",0,-1);
关闭Jedis连接
Jedis连接池
步骤
初始化Jedis连接池,通常来讲JedisPool是单例的
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); JedisPool jedisPool = new JedisPool(poolConfig,"127.0.0.1","6379");
从连接池中获取jedis对象
执行操作
归还Jedis对象给连接池
示例
Jedis jedis = null;
try{
jedis =jedisPool.getResource();
jedis.set("hello","world");
}catch(Exception e){
e.printStackTrace();
}finally{
if(redis != null){
// 如果使用JedisPool.close操作不是关闭连接,而是归还redis连接到连接池
jedis.close();
}
}
方案对比
方案
优点
缺点
Jedis直连
简单方便 使用于少量长期连接的场景
Jedis连接池
Last updated
Was this helpful?