JAVA 中使用Jedis操作Redis

JAVA中使用Jedis操作Redis

1.Redis版本3.2.8 (版本可用最新的);下载地址:http://download.redis.io/releases/redis-3.2.8.tar.gz
2. 使用maven配置Redis连接池 commons-pool(版本可用最新的)
3.JAVA代码示例
———————————————————代码示例——————————————————————
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;

public class Redis {
   private Jedis jedis;

/**
 * 本地启动Reids服务(redis-server.exe)
         *  无需端口、密码
         */
@Before
public void setUp(){
jedis = new Jedis("127.0.0.1");
}

/**
* Redis字符串存储
*/
@Test
public void testString(){
jedis.set("name","java");
String name = jedis.get("name");
System.out.println("查看执行结果:"+name);

jedis.append("name"," append  C#");
String append = jedis.get("name");
System.out.println("查看追加执行的结果:"+append);
}

/**
* Redis 输入100000条数据时间
*/
@Test
public void testString100000(){
long startTime = System.currentTimeMillis();
System.out.println("开始执行:"+startTime);
for (int i = 0; i < 100000; i++) {
String key = "key" + i;
String value = "value" + i;
jedis.set(key, value);
String values = jedis.get(key);
System.out.println(values);
}
long endTime = System.currentTimeMillis();
System.out.println("结束:"+endTime);
System.out.println("执行时间:"+ (endTime-startTime));
}

/**
*Redis 数据删除
*/
@Test
public void testDelString(){
jedis.set("name", "C#");
System.out.println("输入的内容:"+jedis.get("name"));
System.out.println("---------------------------");
jedis.del("name");
System.out.println("删除后获取:"+jedis.get("name"));
}

/**
* **********************************************************************
* **********************************************************************
*/

/**
* Redis map存储
*/
@Test
public void testMap(){
Map<String,String> map = new HashMap<String, String>();
map.put("name", "张三");
map.put("sex", "男");
map.put("phone", "110");
jedis.hmset("user",map);

List<String> list = jedis.hmget("user", "name","sex","phone");
System.out.println("查看内容"+list);
System.out.println("***************删除map中的某个键值**************");

jedis.hdel("user", "phone");
System.out.println("查看执行结果:"+jedis.hmget("user", "phone"));//删除后返回null
System.out.println("返回user键中存放的值的个数:"+jedis.hlen("user"));
System.out.println("是否存在key为user的记录:"+jedis.exists("user"));
System.out.println("返回map中所有的key:"+jedis.hkeys("user"));
System.out.println("返回map中所有的value:"+jedis.hvals("user"));

//循环出map中键值对
Iterator<String> iter = jedis.hkeys("user").iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key+":"+jedis.hmget("user", key));
}
}

/**
* Redis list数据存储
*/
@Test
public void testList(){
jedis.lpush("java", "spring");
jedis.lpush("java","springMVC");
jedis.lpush("java", "mybatis");

System.out.println("获取长度:"+jedis.llen("java"));

//获取所有数据
//第一个是key值   第二个是起始位置   第三个为结束位置   -1标示所有
System.out.println(jedis.lrange("java", 0, -1));

System.out.println("删除:"+jedis.del("java"));

jedis.rpush("SQL", "mysql");
jedis.rpush("SQL","oracle");
jedis.rpush("SQL", "pgsql");

System.out.println(jedis.lrange("SQL", 0, -1));
}

/**
* Redis Set存储
*/
@Test
public void testSet(){
jedis.sadd("user", "张三");
jedis.sadd("user", "李四");
jedis.sadd("user", "王五");

System.out.println("获取所有加入的value:"+jedis.smembers("user"));

//判断集合中是否包含某元素  包含返回true  不包含返回false
System.out.println("判断张三是否是user集合的元素:"+jedis.sismember("user", "张三"));

System.out.println("===="+jedis.srandmember("user"));

System.out.println("返回集合的元素个数:"+jedis.scard("user"));

System.out.println("删除集合中的某个元素:"+jedis.srem("user", "张三"));
}

/**
* Redis list数据排序
*/
@Test
public void test(){
//jedis 排序
jedis.rpush("a", "1");
jedis.rpush("a", "6");
jedis.rpush("a", "4");
jedis.rpush("a","7");
jedis.rpush("a","3");
jedis.rpush("a", "2");
jedis.rpush("a", "5");

System.out.println("排序前:"+jedis.lrange("a", 0,-1));
System.out.println("怕须后:"+jedis.sort("a"));
}

//Reids Jedis连接池 测试
@Test
public void testRedisPool(){
RedisUtil.getJedis().set("newname", "中文测试");
System.out.println(RedisUtil.getJedis().get("newname"));
}
}

__________________________连接池Util类___________________________
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;


public class RedisUtil {


//服务连接地址
private static String ADDR = "127.0.0.1";

private static int MAX_IDLE = 200;

private static int MAX_WAIT = 10000;

private static int TIMEOUT = 10000;

private static boolean TEST_ON_BORROW = true;

private static JedisPool jedisPool = null;

//初始化Redis连接池
static{
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
jedisPool = new JedisPool(config,ADDR,TIMEOUT);
} catch (Exception e) {
e.printStackTrace();
}
}

//获取Jedis实例
public synchronized static Jedis getJedis(){
try {
if(jedisPool != null){
Jedis resource = jedisPool.getResource();
return resource;
}else{
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

//释放Jedis资源
@SuppressWarnings("deprecation")
public static void returnResource(final Jedis jedis){
if(jedis != null){
jedisPool.returnResource(jedis);
}
}
}

猜你喜欢

转载自blog.csdn.net/u010786396/article/details/60756087
今日推荐