標籤:賦值 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)