我是Redis的新手,目前在Redis上使用Java 8,Java EE 7和AWS Elastic Cache。 使用我的java知识,一旦任务结束,所有资源都应该关闭/返回到池中。
pool= new JedisPool(new JedisPoolConfig(),"myendpoint.aws.com",6379,Protocol.DEFAULT_TIMEOUT);
try(Jedis jedis=pool.getResource();)
{
ListTask gt=new ListTask();
JsonArray listofTask=gt.getTutorials();
Map<String,String> attributes = new HashMap<>();
attributes.put("ListofTask",listofTask.toString());
jedis.hmset(key, attributes);
}
catch (Exception ex) {
Logger.getLogger(RedisOperation.class.getName()).log(Level.SEVERE,"setRedisListofTaskJSON", ex);
}
pool.close();
点击信息后,我将连接客户端设置为149.这只是一个测试应用程序多次的框。每次connected_clients增加并且内存增加。
客户 connected_clients:149 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0
问题: 1如何关闭/保持联系? 2如何在密钥上设置年龄/ ttl?
使用JDK8,Java EE7和Redis 2.8(使用Jedis连接)。
答案 0 :(得分:1)
由于我使用了try-resources,因此无需关闭jedis池资源。在应用程序结束时,通过调用destroy方法来破坏池。
try(Jedis jedis=pool.getResource();)
{
jedis.hmset(key, attributes);
}catch (Exception ex) {
}
pool.destroy();
原始文件 https://github.com/xetorthio/jedis/wiki/Getting-started。
答案 1 :(得分:0)
您的问题2的答案是使用来自Jedis类的expire或expireat和ttl方法