redis單機版的使用-java
阿新 • • 發佈:2018-12-25
1 通過jedis連線redis單機
專案環境,我是使用ssm框架環境然後加上redis來使用了,大家使用任何框架或者不使用框架都可以使用這個redis快取。
1、maven包座標引入
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.0</version><!--版本號--> </dependency>
2、單例項連結 我的linux伺服器地址:192.168.1.254
注意:外部連線不上redis的解決方法
由於linux防火牆預設開啟,redis的服務埠6379並不在開放規則之內,所有需要將此埠開放訪問或者關閉防火牆。
關閉防火牆命令:sevice iptables stop
如果是修改防火牆規則,可以修改:/etc/sysconfig/iptables檔案
@Test public void testJedisSingle() { Jedis jedis = new Jedis("192.168.1.254", 6379); jedis.set("name", "bar"); String name = jedis.get("name"); System.out.println(name); jedis.close(); }
如果關閉防火牆命令失敗 就要先安裝iptables 命令是:yum install iptables 如下圖
3、redis連線池的使用
@Test public void testJedisPool(){ JedisPool jedisPool=new JedisPool("192.168.1.254", 6379); //呼叫這個物件的方法,方法名稱與redis命令一致, Jedis jedis = jedisPool.getResource(); jedis.set("key1", "1"); System.out.println(jedis.get("key1")); jedis.close(); //關閉jedis }
4,spring容器載入配置檔案以及封裝的類
<!-- 連線池配置,可以寫相關配置也可以不寫,jedis有個預設的配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"></bean>
--><!-- 配置redis連結工具的單例物件 (單機版)-->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="${jedisPool.host}"></constructor-arg><constructor-arg name="port" value="${jedisPool.port}"></constructor-arg>
<!-- <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
--><!-- 我們這裡使用預設的配置 --></bean>
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import com.shuang.redis.JedisClient;
/**
* 單機版redis實現類
* @author shuang
*
*/
@Service("jedisClient")
public class JedisClientSingle implements JedisClient {
@Resource(name="jedisPool")
private JedisPool jedisPool;//這個在sping中配置好的
@Override
public String get(String key) {
try {
Jedis jedis = jedisPool.getResource();
String string=jedis.get(key);
jedis.close();
return string;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String set(String key, String value) {
try {
Jedis jedis = jedisPool.getResource();
String string = jedis.set(key, value);
jedis.close();
return string;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String hget(String hkey, String key) {
try {
Jedis jedis = jedisPool.getResource();
String string = jedis.hget(hkey, key);
jedis.close();
return string;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long hset(String hkey, String key, String value) {
try {
Jedis jedis = jedisPool.getResource();
Long l = jedis.hset(hkey, key, value);
jedis.close();
return l;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long incr(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long decr(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result =jedis.decr(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long expire(String key, int seconds) {
try {
Jedis jedis = jedisPool.getResource();
Long expire = jedis.expire(key,(int) seconds);
jedis.close();
return expire;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long ttl(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long del(String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.del(key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public Long hdel(String hkey, String key) {
try {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(hkey, key);
jedis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
以上是一些簡單的部分方法封裝。