1. 程式人生 > >Redis的安裝和Jedis的使用

Redis的安裝和Jedis的使用

Redis的安裝和學習資料

Redis的安裝可以參考 https://www.cnblogs.com/dddyyy/p/9763098.html

Redis的學習可以參考https://www.cnblogs.com/dddyyy/p/9803828.html 

1.Jedis工具類的基本使用

因為Jedis工具類使用的是連線池,那麼我們就來看一下連線池最簡單的Demo,這樣可以有助於瞭解後面的工具類程式碼。

  先可以使用Maven工程來導包需要的依賴包

<dependency>
         <groupId>redis.clients</groupId>
         <artifactId>jedis</artifactId>
         <version>2.6.3</version>
         <type>jar</type>
         <scope>compile</scope>
</dependency>
編寫個測試類

package com.JedisTest;

import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisTest {

@Test
public void Test1() {
//建立一個連線池 引數為你的Redis安裝的ip地址和埠
JedisPool jedisPool = new JedisPool("192.168.25.128",6379);
//從連線池拿個連線資源
Jedis jedis = jedisPool.getResource();//獲取資源
//設定Key-Value
jedis.set("myname", "dingyu");
//根據Key 取 Value
String name = jedis.get("myname");
System.out.println(name);
//關閉連線資源
jedis.close();
//關閉連線池
jedisPool.close();
}
}

 測試結果

2.工具類

package JedisTool;


public interface JedisClient {

String set(String key, String value);
String get(String key);
Boolean exists(String key);
Long expire(String key, int seconds);
Long ttl(String key);
Long incr(String key);
Long hset(String key, String field, String value);
String hget(String key, String field);
Long hdel(String key,String... field);//刪除hkey
}

 

package JedisTool;

import org.springframework.beans.factory.annotation.Autowired;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisClientPool implements JedisClient {

@Autowired
private JedisPool jedisPool;

@Override
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String result = jedis.set(key, value);
jedis.close();
return result;
}

@Override
public String get(String key) {
Jedis jedis = jedisPool.getResource();
String result = jedis.get(key);
jedis.close();
return result;
}

@Override
public Boolean exists(String key) {
Jedis jedis = jedisPool.getResource();
Boolean result = jedis.exists(key);
jedis.close();
return result;
}

@Override
public Long expire(String key, int seconds) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, seconds);
jedis.close();
return result;
}

@Override
public Long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
}

@Override
public Long incr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
}

@Override
public Long hset(String key, String field, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(key, field, value);
jedis.close();
return result;
}

@Override
public String hget(String key, String field) {
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(key, field);
jedis.close();
return result;
}

@Override
public Long hdel(String key, String... field) {
Jedis jedis = jedisPool.getResource();
Long hdel = jedis.hdel(key, field);
jedis.close();
return hdel;
}

}

 

package JedisTool;

import org.springframework.beans.factory.annotation.Autowired;

import redis.clients.jedis.JedisCluster;
/**
* 主要用於叢集的時候連線Redis
*
*
*/
public class JedisClientCluster implements JedisClient {

@Autowired
private JedisCluster jedisCluster;

@Override
public String set(String key, String value) {
return jedisCluster.set(key, value);
}

@Override
public String get(String key) {
return jedisCluster.get(key);
}

@Override
public Boolean exists(String key) {
return jedisCluster.exists(key);
}

@Override
public Long expire(String key, int seconds) {
return jedisCluster.expire(key, seconds);
}

@Override
public Long ttl(String key) {
return jedisCluster.ttl(key);
}

@Override
public Long incr(String key) {
return jedisCluster.incr(key);
}

@Override
public Long hset(String key, String field, String value) {
return jedisCluster.hset(key, field, value);
}

@Override
public String hget(String key, String field) {
return jedisCluster.hget(key, field);
}

@Override
public Long hdel(String key, String... field) {
// TODO Auto-generated method stub
return jedisCluster.hdel(key, field);
}

}

 

整合配置檔案

<!-- spring的寫法 -->
<!-- 配置單機版 -->
<bean class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.153"</constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
<!-- 配置叢集版 -->
<bean class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7001"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7002"></constructor-arg>
</bean>
      </set> 

</constructor-arg>
</bean>