温馨提示×

spring框架怎么使用redis

小新
147
2020-12-13 11:52:43
栏目: 云计算

spring框架怎么使用redis

"spring框架使用redis的方法:

1.在pom.xml中导入redis的相关依赖,例如:

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.1.0</version>

</dependency>

2.在applicationContext.xml中添加redis相关配置,例如:

<!--redis 配置 开始-->

<bean id=""jedisPoolConfig"" class=""redis.clients.jedis.JedisPoolConfig"">

<property name=""maxActive"" value=""300""/>

<property name=""maxIdle"" value=""100""/>

<property name=""maxWait"" value=""1000""/>

<property name=""testOnBorrow"" value=""true""/>

</bean>

<!-- Config poolConfig, String host, int port, int timeout, String password, int database-->

<bean id=""jedisPool"" class=""redis.clients.jedis.JedisPool"" destroy-method=""destroy"">

<constructor-arg ref=""jedisPoolConfig""/>

<constructor-arg value=""127.0.0.1""/>

<constructor-arg value=""6379""/>

<constructor-arg value=""3000""/>

<constructor-arg value=""123456""/>

<constructor-arg value=""0""/>

</bean>

<bean id=""redisAPI"" class=""com.xc.util.RedisAPI"">

<property name=""jedisPool"" ref=""jedisPool""/>

</bean>

3.最后创建redis的工具类即可。代码如下:

public class RedisAPI {

public static JedisPool jedisPool;

public JedisPool getJedisPool() {

return jedisPool;

}

public void setJedisPool(JedisPool jedisPool) {

RedisAPI.jedisPool = jedisPool;

}

/**

* set key and value to redis

* @param key

* @param value

* @return

*/

public static boolean set(String key,String value){

try{

Jedis jedis = jedisPool.getResource();

jedis.set(key, value);

return true;

}catch(Exception e){

e.printStackTrace();

}

return false;

}

/**

* set key and value to redis

* @param key

* @param seconds 有效期

* @param value

* @return

*/

public static boolean set(String key,int seconds,String value){

try{

Jedis jedis = jedisPool.getResource();

jedis.setex(key, seconds, value);

return true;

}catch(Exception e){

e.printStackTrace();

}

return false;

}

/**

* 判断某个key是否存在

* @param key

* @return

*/

public boolean exist(String key){

try{

Jedis jedis = jedisPool.getResource();

return jedis.exists(key);

}catch(Exception e){

e.printStackTrace();

}

return false;

}

/**

* 返还到连接池

* @param pool

* @param redis

*/

public static void returnResource(JedisPool pool,Jedis redis){

if(redis != null){

pool.returnResource(redis);

}

}

/**

* 获取数据

* @param key

* @return

*/

public String get(String key){

String value = null;

Jedis jedis = null;

try{

jedis = jedisPool.getResource();

value = jedis.get(key);

}catch(Exception e){

e.printStackTrace();

}finally{

//返还到连接池

returnResource(jedisPool, jedis);

}

return value;

}

/**

* 查询key的有效期,当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。

* 注意:在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

* @param key

* @return 剩余多少秒

*/

public Long ttl(String key){

try{

Jedis jedis = jedisPool.getResource();

return jedis.ttl(key);

}catch(Exception e){

e.printStackTrace();

}

return (long) -2;

}

/**

* 删除

* @param key

*/

public void delete(String key){

try{

Jedis jedis = jedisPool.getResource();

jedis.del(key);

}catch(Exception e){

e.printStackTrace();

}

}

0