1 安装
1.1 Ubuntu环境
安装命令
sudo apt-get install redis-server
打开client终端,测试是否安装成功
2 下载并配置Jdis
Jdis是Java操作Redis的api接口,下载地址为:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip
如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip
3 Java操作Redis示例
简单地获取连接
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class TestRedis {
private Jedis client; // 客户端
/**
* 构造方法,创建连接客户端
* */
public TestRedis() {
client = new Jedis("localhost", 6379);
}
/**
* 存储字符串
* */
public void test1() {
client.set("name", "panshan"); // 存储键值对
System.out.println(client.get("name")); // 根据键获取值, panshan
client.append("name", "from bupt"); // 根据key,对value进行追加, panshanfrom bupt
System.out.println(client.get("name"));
client.del("name"); // 根据key,删除kv
client.get("name");
/**
* 同时设置多个键值对
* */
client.mset("name", "panshan", "from", "bupt");
System.out.println(client.get("name")); // panshan
System.out.println(client.get("from")); // bupt
}
/**
* key为字符串,value为HashMap
* */
public void test2() {
// 创建并初始化HashMap
HashMap<String, String> map1 = new HashMap<>();
map1.put("a", "1");
map1.put("b", "2");
map1.put("c", "3");
// 将map作为value,存入数据库
client.hmset("map1", map1);
// 取出map中的值,第一个参数为map对应的key,其他参数为map中的key
List<String> res = client.hmget("map1", "a", "b", "c");
System.out.println(res); // [1, 2, 3]
}
/**
* Set操作
* */
public void test3() {
client.sadd("set1", "value1", "value2", "value3");
client.sadd("set1", "value4");
Set<String> set1 = client.smembers("set1");
System.out.println(set1); // [value2, value1, value4, value3]
}
public static void main(String[] args) {
TestRedis obj = new TestRedis();
obj.test3();
}
}
使用连接池
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisPool {
private static String host = "localhost"; // 服务器地址
private static int port = 6379; // 端口号
private static int MAX_ACTIVE = 200; // 最大活跃连接数
private static int MAX_IDEL = 100; // 最大空闲连接数
private static int MAX_WAIT = 10000; // 等待可用连接的最大时长ms
private JedisPool pool = null; // 连接池
/**
* 构造方法,创建并初始化连接池
* */
public RedisPool() {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(MAX_ACTIVE);
config.setMaxIdle(MAX_IDEL);
config.setMaxWait(MAX_WAIT);
pool = new JedisPool(config, host, port);
}
/**
* 从连接池获取多个连接客户端,用客户端操作数据库,最后释放资源
* */
public void process() {
/**
* 获取多个连接客户端
* */
for (int i = 0; i < 10; i++) {
Jedis client = pool.getResource();
client.set("thread", Thread.currentThread().getName());
System.out.println(client.get("thread"));
pool.returnResource(client); // 释放连接资源到连接池
}
}
public static void main(String[] args) {
RedisPool obj = new RedisPool();
obj.process();
}
}