零、更改redis.conf配置
一、pom文件导入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
二、新建一个连接redis数据库的工具类
package com.wsq.utils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/*
* redis连接工具类
*/
public class RedisUtil {
//服务器IP地址
private static final String ADDR = "hadoop105";
//端口
private static final int PORT = 6379;
//密码
private static final String AUTH = null;
//连接实例的最大连接数
private static final int MAX_ACTIVE = 1024;
//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
private static final int MAX_IDLE = 200;
//等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
private static final int MAX_WAIT = 10000;
//连接超时的时间
private static final int TIMEOUT = 10000;
// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
private static final boolean TEST_ON_BORROW = true;
private static JedisPool jedisPool = null;
/*
* 初始化Redis连接池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
} 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;
}
}
/*
* 释放资源
*/
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
jedisPool.returnResource(jedis);
}
}
}
注意:默认redis服务器是没有密码的,所以配置jedis连接配置的时候,password我设置成了null。
怎样给redis设置了密码呢。
#1.启动redis-server redis.conf
#2.启动redis-cli
#3.设置redis配置密码(每次redis服务重启都要设置一下)
redis 127.0.0.1:6379> CONFIG SET requirepass "123456"
OK
redis 127.0.0.1:6379> AUTH 123456
Ok
设置完密码后,就需要在配置中写入对应密码。
三、redis的增删改查的测试
import com.wsq.utils.RedisUtil;
import redis.clients.jedis.Jedis;
import java.util.Map;
public class Test {
@org.junit.Test
public void selectFromRedis() {
Jedis jedis = RedisUtil.getJedis();
assert jedis != null;
String k1 = jedis.get("k2");
System.out.println(k1);
RedisUtil.returnResource(jedis);
}
@org.junit.Test
public void addToRedis() {
Jedis jedis = RedisUtil.getJedis();
assert jedis != null;
String set = jedis.set("k2", "wangshuaiqi");
System.out.println(set);
RedisUtil.returnResource(jedis);
}
@org.junit.Test
public void deleteFromRedis() {
Jedis jedis = RedisUtil.getJedis();
assert jedis != null;
Long k2 = jedis.del("k2");
System.out.println(k2);
RedisUtil.returnResource(jedis);
}
@org.junit.Test
public void getHashOne() {
Jedis jedis = RedisUtil.getJedis();
assert jedis != null;
String hget = jedis.hget("clicks", "Alice");
System.out.println(hget);
RedisUtil.returnResource(jedis);
}
@org.junit.Test
public void delHash() {
Jedis jedis = RedisUtil.getJedis();
assert jedis != null;
Long hdel = jedis.hdel("clicks", "Alice");
System.out.println(hdel);
RedisUtil.returnResource(jedis);
}
@org.junit.Test
public void getAllHash() {
Jedis jedis = RedisUtil.getJedis();
assert jedis != null;
Map<String, String> map = jedis.hgetAll("clicks");
for (Map.Entry<String, String> entry : map.entrySet()) {
String mapKey = entry.getKey();
String mapValue = entry.getValue();
System.out.println(mapKey + ":" + mapValue);
}
RedisUtil.returnResource(jedis);
}
}