1. 程式人生 > >redis單機版的使用-java

redis單機版的使用-java

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;
		}
	}

}
以上是一些簡單的部分方法封裝。