spring 整合redis用戶端jedis(java)

來源:互聯網
上載者:User

標籤:賦值   redis   xsd   mini   nil   cli   ons   long   dep   

jedis是redis的java用戶端,spring將redis串連池作為一個bean配置。

“redis.clients.jedis.JedisPool”,這是單機環境適用的redis串連池。

 

1、maven匯入相關包:

    <!-- redis依賴包 -->    <dependency>      <groupId>redis.clients</groupId>      <artifactId>jedis</artifactId>      <version>2.9.0</version>    </dependency>

 

2、下面是單機環境下redis串連池的配置:

   
   

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<!-- 引入jedis的properties設定檔 -->
<!--如果你有多個資料來源需要通過<context:property-placeholder管理,且不願意放在一個設定檔裡,那麼一定要加上ignore-unresolvable=“true"-->
<context:property-placeholder location="classpath:properties/redis.properties" ignore-unresolvable="true" />

<!--Jedis串連池的相關配置-->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!--新版是maxTotal,舊版是maxActive-->
<property name="maxTotal">
<value>${redis.pool.maxActive}</value>
</property>
<property name="maxIdle">
<value>${redis.pool.maxIdle}</value>
</property>
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
</bean>

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="poolConfig" ref="jedisPoolConfig" />
<constructor-arg name="host" value="${redis.host}" />
<constructor-arg name="port" value="${redis.port}" type="int" />
<constructor-arg name="timeout" value="${redis.timeout}" type="int" />
<constructor-arg name="password" value="${redis.password}" />
<constructor-arg name="database" value="${redis.database}" type="int" />
</bean>
</beans>

 

3、對應的classpath:properties/redis.properties.xml為:

 
#最大分配的對象數redis.pool.maxActive=200#最大能夠保持idel狀態的對象數redis.pool.maxIdle=50redis.pool.minIdle=10redis.pool.maxWaitMillis=20000#當池內沒有返回對象時,最大等待時間redis.pool.maxWait=300#格式:redis://:[密碼]@[伺服器位址]:[連接埠]/[db index]redis.uri = redis://:[email protected]:6379/0redis.host = 127.0.0.1redis.port = 6379redis.timeout=30000redis.password = 12345redis.database = 0

 

 

4、RedisUtil

package com.ctid.business.redis.util;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
@Component
public class RedisUtil {

@Resource
private JedisPool jedisPool;// 注入JedisPool

public String get(String key) {// 擷取指定 key 的值。如果 key 不存在,返回 nil
Jedis jedis = jedisPool.getResource();
String string = jedis.get(key);
jedis.close();
return string;
}

public String set(String key, String value) {// 設定一些字串值
Jedis jedis = jedisPool.getResource();
String string = jedis.set(key, value);
jedis.close();
return string;
}

public String hget(String hkey, String key) {// 擷取雜湊表中指定欄位的值
Jedis jedis = jedisPool.getResource();
String string = jedis.hget(hkey, key);
jedis.close();
return string;
}

public long hset(String hkey, String key, String value) {// 為雜湊表中的欄位賦值
Jedis jedis = jedisPool.getResource();
long result = jedis.hset(hkey, key, value);
jedis.close();
return result;
}

public long incr(String key) {// 將 key 中儲存的數字值增一,如果 key 不存在,那麼 key 的值會先被初始化為
// 0 ,然後再執行INCR操作
Jedis jedis = jedisPool.getResource();
long result = jedis.incr(key);
jedis.close();
return result;
}

public long expire(String key, int second) {// 設定key的到期時間
Jedis jedis = jedisPool.getResource();
long result = jedis.expire(key, second);
jedis.close();
return result;
}

public long ttl(String key) {// 以秒為單位返回 key 的剩餘到期時間
Jedis jedis = jedisPool.getResource();
long result = jedis.ttl(key);
jedis.close();
return result;
}

public long del(String key) {// 根據key刪除
Jedis jedis = jedisPool.getResource();
long result = jedis.del(key);
jedis.close();
return result;
}

public long hdel(String hkey, String key) {// 刪除雜湊表key中的一個或多個指定欄位
Jedis jedis = jedisPool.getResource();
long result = jedis.hdel(hkey, key);
jedis.close();
return result;
}

}

 

 

 

5、redisUtil調用

package com.ctid.business.redis.testIpv6;

import javax.annotation.Resource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;

import com.ctid.business.redis.util.RedisUtil;

@Service
public class TestIpv6 {

private static final Log LOGGER = LogFactory.getLog(TestIpv6.class);
@Resource
private RedisUtil redisUtil;

public void testIpv6() {
LOGGER.info("redis======================================");
String result1 = redisUtil.set("test", "1111");
LOGGER.info("redis設定值:" + result1);
String result2 = redisUtil.get("test");
LOGGER.info("redis查詢值:" + result2);

}

}

 

 

 


spring 整合redis用戶端jedis(java)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.