Java操作redis
2016-02-19 15:01
567 查看
jedis是Redis的Java客户端,用它可以很方便地操作redis。
需要引入的jar包有jedis和common-pool2,用Maven来引入:
一个简单的redis client如下,只操作list。
public class RedisClient {
private static final Logger logger = Logger.getLogger(RedisClient.class);
private JedisPool jedisPool = null;
private String hostname_;
private int port_;
/**
* 初始化连接池
* @param hostname
* @param port
*/
public boolean initialPool(String hostname, int port)
{
this.hostname_ = hostname;
this.port_ = port;
try{
// 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(5);
config.setTestOnBorrow(false);
jedisPool = new JedisPool(config,hostname,port);
logger.info(MessageFormat.format("redis server connect sucessfully,hostname:{0},port:{1}", hostname , port));
}catch(JedisConnectionException e){
logger.warn(MessageFormat.format("redis server connect fail,hostname:{0},port:{1}", hostname , port));
logger.error(e.getMessage(),e);
return false;
}
return true;
}
/**
* ping redis节点
* @return
*/
public boolean ping(){
if(jedisPool!=null && !jedisPool.isClosed()){
return true;
}
logger.warn(MessageFormat.format("redis server ping fail,hostname:{0},port:{1}", hostname_ , port_));
return initialPool(hostname_, port_);
}
/**
* push到队列
* @param key
* @param value
*/
public void PushList(String key,String value){
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.rpush(key, value);
logger.debug("Push:"+key+","+value);
} catch (Exception e) {
logger.error("failed to push to list");
logger.error(e.getMessage(),e);
} finally {
jedisPool.returnResource(jedis);
}
}
/**
* * pop队列
* @param key
*/
public String PopList(String key){
Jedis jedis = null;
String value = null;
try {
jedis = jedisPool.getResource();
value = jedis.lpop(key);
if(value != null){
logger.debug("Pop:"+key+","+value);
}
} catch (Exception e) {
logger.error("failed to pop from list");
logger.error(e.getMessage(),e);
} finally {
jedisPool.returnResource(jedis);
}
return value;
}
需要引入的jar包有jedis和common-pool2,用Maven来引入:
<!-- jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.4.2</version> </dependency>
一个简单的redis client如下,只操作list。
public class RedisClient {
private static final Logger logger = Logger.getLogger(RedisClient.class);
private JedisPool jedisPool = null;
private String hostname_;
private int port_;
/**
* 初始化连接池
* @param hostname
* @param port
*/
public boolean initialPool(String hostname, int port)
{
this.hostname_ = hostname;
this.port_ = port;
try{
// 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(5);
config.setTestOnBorrow(false);
jedisPool = new JedisPool(config,hostname,port);
logger.info(MessageFormat.format("redis server connect sucessfully,hostname:{0},port:{1}", hostname , port));
}catch(JedisConnectionException e){
logger.warn(MessageFormat.format("redis server connect fail,hostname:{0},port:{1}", hostname , port));
logger.error(e.getMessage(),e);
return false;
}
return true;
}
/**
* ping redis节点
* @return
*/
public boolean ping(){
if(jedisPool!=null && !jedisPool.isClosed()){
return true;
}
logger.warn(MessageFormat.format("redis server ping fail,hostname:{0},port:{1}", hostname_ , port_));
return initialPool(hostname_, port_);
}
/**
* push到队列
* @param key
* @param value
*/
public void PushList(String key,String value){
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.rpush(key, value);
logger.debug("Push:"+key+","+value);
} catch (Exception e) {
logger.error("failed to push to list");
logger.error(e.getMessage(),e);
} finally {
jedisPool.returnResource(jedis);
}
}
/**
* * pop队列
* @param key
*/
public String PopList(String key){
Jedis jedis = null;
String value = null;
try {
jedis = jedisPool.getResource();
value = jedis.lpop(key);
if(value != null){
logger.debug("Pop:"+key+","+value);
}
} catch (Exception e) {
logger.error("failed to pop from list");
logger.error(e.getMessage(),e);
} finally {
jedisPool.returnResource(jedis);
}
return value;
}
相关文章推荐
- Redis与Reactor模式
- 2.Redis学习-list操作
- 1.Redis学习-字符串类型
- CeonterOS6.7 64位安装 redis-3.0.7.tar.gz
- redis中使用redis-dump导出、导入、还原数据实例
- redis中使用redis-dump导出、导入、还原数据实例
- Redis批量删除KEY的方法
- Redis批量删除KEY的方法
- 超强、超详细Redis数据库入门教程
- Redis总结笔记(一):安装和常用命令
- Redis总结笔记(二):C#连接Redis简单例子
- Redis总结笔记(二):C#连接Redis简单例子
- redis启动流程介绍
- redis启动流程介绍
- redis中使用java脚本实现分布式锁
- redis中使用java脚本实现分布式锁
- redis常用命令、常见错误、配置技巧等分享
- redis常用命令、常见错误、配置技巧等分享
- Redis操作命令总结
- Redis操作命令总结