Redis工具类封装RedisUtils的使用示例
此RedisUtil工具类的功能:
文章图片
直接使用此RedisUtil工具类的所需条件:
- 项目基于SpringBoot。
- pom.xml中需要引入依赖spring-boot-starter-data-redis。
- pom.xml中需要引入依赖lombok。
- pom.xml中需要引入依赖fastjson。
注:当然,如果是非SpringBoot的项目,那么也可以通过xml配置等方式,来使用此工具类,自行摸索吧。
SpringBoot项目集成Redis相当简单,只需要pom中加入对应依赖
org.springframework.boot spring-boot-starter-data-redis
【Redis工具类封装RedisUtils的使用示例】yml中,配置好spring.redis.host,spring.redis.port即可。
具体如何封装,直接上代码。
/** * Redis工具类,使用之前请确保RedisTemplate成功注入 * * @author ye17186 * @version 2019/2/22 10:48 */public class RedisUtils { private RedisUtils() {} @SuppressWarnings("unchecked")private static RedisTemplate redisTemplate = SpringUtils.getBean("redisTemplate", RedisTemplate.class); /*** 设置有效时间** @param key Redis键* @param timeout 超时时间* @return true=设置成功;false=设置失败*/public static boolean expire(final String key, final long timeout) { return expire(key, timeout, TimeUnit.SECONDS); } /*** 设置有效时间** @param key Redis键* @param timeout 超时时间* @param unit 时间单位* @return true=设置成功;false=设置失败*/public static boolean expire(final String key, final long timeout, final TimeUnit unit) { Boolean ret = redisTemplate.expire(key, timeout, unit); return ret != null && ret; } /*** 删除单个key** @param key 键* @return true=删除成功;false=删除失败*/public static boolean del(final String key) { Boolean ret = redisTemplate.delete(key); return ret != null && ret; } /*** 删除多个key** @param keys 键集合* @return 成功删除的个数*/public static long del(final Collection keys) { Long ret = redisTemplate.delete(keys); return ret == null ? 0 : ret; } /*** 存入普通对象** @param key Redis键* @param value 值*/public static void set(final String key, final Object value) { redisTemplate.opsForValue().set(key, value, 1, TimeUnit.MINUTES); } // 存储普通对象操作 /*** 存入普通对象** @param key 键* @param value 值* @param timeout 有效期,单位秒*/public static void set(final String key, final Object value, final long timeout) { redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS); } /*** 获取普通对象** @param key 键* @return 对象*/public static Object get(final String key) { return redisTemplate.opsForValue().get(key); } // 存储Hash操作 /*** 往Hash中存入数据** @param key Redis键* @param hKey Hash键* @param value 值*/public static void hPut(final String key, final String hKey, final Object value) { redisTemplate.opsForHash().put(key, hKey, value); } /*** 往Hash中存入多个数据** @param key Redis键* @param values Hash键值对*/public static void hPutAll(final String key, final Map values) { redisTemplate.opsForHash().putAll(key, values); } /*** 获取Hash中的数据** @param key Redis键* @param hKey Hash键* @return Hash中的对象*/public static Object hGet(final String key, final String hKey) { return redisTemplate.opsForHash().get(key, hKey); } /*** 获取多个Hash中的数据** @param key Redis键* @param hKeys Hash键集合* @return Hash对象集合*/public static List