(一)安裝和使用
Jedis是Redis的Java客戶端,它提供了很多的API來操作Redis數據庫,使用jedis首先需要導入依賴
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.4.2</version>
</dependency>
public static void main(String[] args){
String host="192.168.0.106";
int port=6379;
String password="123456";
Jedis jedis = new Jedis(host,port);
jedis.auth(password);
System.out.println(jedis.ping());
}
備註:如果操作Jedis時報錯鏈接異常,可能是因爲Linux的對應的端口防火牆原因,或者配置文件中沒有關閉bind屬性只能本地訪問,這些說明防火牆的設置
查看已經開放的端口:
firewall-cmd–list-ports
開啓端口:
firewall-cmd–zone=public --add-port6379/tcp
重啓防火牆
firewall-cmd --reload
(二)自定義連接池和實例
1:連接池
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisUtils {
private static JedisPool jedisPool = null;
private static String host = "192.168.0.106";
private static int port = 6379;
private static String password = "123456";
static {
//連接池配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(5);
jedisPoolConfig.setMaxIdle(3);
//連接池對象
jedisPool = new JedisPool(jedisPoolConfig, host, port);
}
//獲取連接實例
public static Jedis getJedisConnection() {
//獲取實例
Jedis jedis = jedisPool.getResource();
//傳入密碼參數
jedis.auth(password);
return jedis;
}
//關閉連接
public static void closeJedisConnection(Jedis jedis) {
jedis.close();
}
}
2:set自定義模擬對象存儲和讀取
import redis.clients.jedis.Jedis;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class HsetDemo {
public static User getUser(String key) {
Jedis jedis = JedisUtils.getJedisConnection();
User user = new User();
if (jedis.exists(key)) {
Map<String, String> map = jedis.hgetAll(key);
user.setSid(Integer.valueOf(map.get("sid")));
user.setName(map.get("name"));
user.setAge(Integer.valueOf(map.get("age")));
System.out.println("Redis獲取數據" + user);
} else {
user.setAge(45);
user.setSid(12121);
user.setName("張三");
ConcurrentHashMap<String, String> map = new ConcurrentHashMap<String, String>();
map.put("sid", user.getSid() + "");
map.put("name", user.getName());
map.put("age", user.getAge() + "");
System.out.println("MySQL獲取數據" + user);
jedis.hmset("user:01", map);
}
return user;
}
public static void main(String[] args) {
getUser("user:01");
}
}
3:自定義Redis連接工具類
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisUtils {
private static JedisPool jedisPool = null;
private static String host = "192.168.0.106";
private static int port = 6379;
private static String password = "123456";
static {
//連接池配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(5);
jedisPoolConfig.setMaxIdle(3);
//連接池對象
jedisPool = new JedisPool(jedisPoolConfig, host, port);
}
//獲取連接實例
public static Jedis getJedisConnection() {
//獲取實例
Jedis jedis = jedisPool.getResource();
//傳入密碼參數
jedis.auth(password);
return jedis;
}
//關閉連接
public static void closeJedisConnection(Jedis jedis) {
jedis.close();
}
}