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

java 操作redis 数据库一:基本操作

2016-11-22 16:57 423 查看
redis作为nosql数据库的佼佼者,作为一名java开发人员,掌握其操作还是很有必要的

下载地址:http://redis.io/download, 

安装我就不累赘了,自行百度去

在操作前,需要添加操作redis需要的jar包jedis.jar

好,废话不多说,直接上代码

package com.redis;

import java.util.ArrayList;

import java.util.List;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

public class DemoRedis {
/**
* 获取jedis对象
* @return
*/
Jedis getJedis(){
JedisPoolConfig config =new JedisPoolConfig();
JedisPool s=new JedisPool(config,"127.0.0.1",6379);
Jedis je=s.getResource();
return je;
}
/**
* 添加
* @param key
* @param value
*/
void add(String key,String value){
Jedis jedis=getJedis();
String str=jedis.set(key, value);
}

/**
* 显示
* @param key
*/
void show(String key){
Jedis jedis=getJedis();
System.out.println("取出的值是:"+jedis.get(key));

}
/**
* 模糊查询
* @param str 
*/
void showCompex(String str){
Jedis jedis=getJedis();
System.out.println("模糊查询key:"+jedis.keys(str));

}
/**
* 删除
* @param str
*/
void delete(String[] str){
Jedis jedis=getJedis();
System.out.println("返回值为:"+jedis.del(str));

}

/**
* 添加多个key-value
* @param str

*/
void addManyKey(String[] str){
/*
* 格式:跟json差不多,区别就是把 : 转成 ,
String str[]=new String[]{"one","name1","two","name2"};
*/
Jedis jedis=getJedis();
jedis.mset(str);
}

/**
* 删除所有

a94f
*/
void deleteAll(){
System.out.println(getJedis().flushDB());
}
/**
* 设置key的超时
* @param key
* @param time
*/
void setTimeOut(String key,int time){

System.out.println(getJedis().expire(key, time));
}
/**
* 查询key的时间,不存在时返回-2,存在没有设置时间返回-1,否则返回时间
* @param key
*/
void showTimeOut(String key){
System.out.println(getJedis().pttl(key));
}

}

二。补充,

上面获取连接的方式适合测试,在实际开发中并不可取,应该使用工厂类来创建,附上代码

package com.redis;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

/**

 * redis工厂类

 * @author Administrator

 *C:\Users\Administrator\.m2\repository\redis\clients\jedis\2.8.0\jedis-2.8.0.jar

 */

public class RedisFactory {
//最大链接数
private int maxTotal=10;
//最大空闲线程
private int maxIdle=5;
//最小空闲数
private int minIdle=0;
//最大等待时间
private int maxWaitMillis=1000;
//连接池管理对象
private static JedisPool jedisPool;
//地址
private String url;
//端口
private int port;
//密码
private String passWold;
//读取超时时间
private int timeOut=1000;
//
private static RedisFactory obj=new RedisFactory();

private RedisFactory(){

}
public  static RedisFactory CreateRedisFactory(){
return obj;
}
/**
* 创建链接池对象
*/
private  synchronized void createJedsiPool(){
JedisPoolConfig config=new JedisPoolConfig();
//最大链接数
config.setMaxTotal(maxTotal);
//最大空闲线程
config.setMaxIdle(maxIdle);
//最大等待时间
config.setMaxWaitMillis(maxWaitMillis);
//最小空闲数
config.setMinIdle(minIdle);
this.jedisPool=new JedisPool(config,url,port,timeOut,passWold);
}
/**
* 获取连接
* @return
*/
public synchronized  Jedis getJedis(){
if(jedisPool==null){
createJedsiPool();
}
//当线程数用完进行等待
if(jedisPool.getNumActive()>=maxTotal){
while(true){
try {
Thread.sleep(500);
if(jedisPool.getNumActive()<maxTotal)
break;
} catch (InterruptedException e) {
break;
}
}
}
return jedisPool.getResource();
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public void setPort(int port) {
this.port = port;
}

public String getPassWold() {
return passWold;
}

public void setPassWold(String passWold) {
this.passWold = passWold;
}

public void setTimeOut(int timeOut) {
this.timeOut = timeOut;
}

public void setMaxTotal(int maxTotal) {
this.maxTotal = maxTotal;
}

public void setMaxIdle(int maxIdle) {
this.maxIdle = maxIdle;
}

public void setMinIdle(int minIdle) {
this.minIdle = minIdle;
}

public void setMaxWaitMillis(int maxWaitMillis) {
this.maxWaitMillis = maxWaitMillis;
}

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