您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在Spring中配置jedis,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
jedis是redis的java客戶端,spring將redis連接池作為一個bean配置。
redis連接池分為兩種,一種是“redis.clients.jedis.ShardedJedisPool
”,這是基于hash算法的一種分布式集群redis客戶端連接池。
另一種是“redis.clients.jedis.JedisPool
”,這是單機環境適用的redis連接池。
maven導入相關包:
<!-- redis依賴包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
ShardedJedisPool是redis集群客戶端的對象池,可以通過他來操作ShardedJedis,下面是ShardedJedisPool的xml配置,spring-jedis.xml
:
<?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" /> <!--shardedJedisPool的相關配置--> <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="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" scope="singleton"> <constructor-arg index="0" ref="jedisPoolConfig" /> <constructor-arg index="1"> <list> <bean class="redis.clients.jedis.JedisShardInfo"> <constructor-arg name="host" value="${redis.uri}" /> </bean> </list> </constructor-arg> </bean> </beans>
下面是單機環境下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>
對應的classpath:properties/redis.properties.xml為:
#最大分配的對象數 redis.pool.maxActive=200 #最大能夠保持idel狀態的對象數 redis.pool.maxIdle=50 redis.pool.minIdle=10 redis.pool.maxWaitMillis=20000 #當池內沒有返回對象時,最大等待時間 redis.pool.maxWait=300 #格式:redis://:[密碼]@[服務器地址]:[端口]/[db index] redis.uri = redis://:12345@127.0.0.1:6379/0 redis.host = 127.0.0.1 redis.port = 6379 redis.timeout=30000 redis.password = 12345 redis.database = 0
二者操作代碼類似,都是先注入連接池,然后通過連接池獲得jedis實例,通過實例對象操作redis。
ShardedJedis操作:
@Autowired private ShardedJedisPool shardedJedisPool;//注入ShardedJedisPool @RequestMapping(value = "/demo_set",method = RequestMethod.GET) @ResponseBody public String demo_set(){ //獲取ShardedJedis對象 ShardedJedis shardJedis = shardedJedisPool.getResource(); //存入鍵值對 shardJedis.set("key1","hello jedis"); //回收ShardedJedis實例 shardJedis.close(); return "set"; } @RequestMapping(value = "/demo_get",method = RequestMethod.GET) @ResponseBody public String demo_get(){ ShardedJedis shardedJedis = shardedJedisPool.getResource(); //根據鍵值獲得數據 String result = shardedJedis.get("key1"); shardedJedis.close(); return result; }
Jedis操作:
@Autowired private JedisPool jedisPool;//注入JedisPool @RequestMapping(value = "/demo_set",method = RequestMethod.GET) @ResponseBody public String demo_set(){ //獲取ShardedJedis對象 Jedis jedis = jedisPool.getResource(); //存入鍵值對 jedis.set("key2","hello jedis one"); //回收ShardedJedis實例 jedis.close(); return "set"; } @RequestMapping(value = "/demo_get",method = RequestMethod.GET) @ResponseBody public String demo_get(){ Jedis jedis = jedisPool.getResource(); //根據鍵值獲得數據 String result = jedis.get("key2"); jedis.close(); return result; }
上述內容就是如何在Spring中配置jedis,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。