依赖:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>
  1. package com.icil.elsa.collection.common.utils;
  2.  
  3. import java.io.Serializable;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.Set;
  7. import java.util.concurrent.TimeUnit;
  8.  
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.data.redis.core.HashOperations;
  11. import org.springframework.data.redis.core.ListOperations;
  12. import org.springframework.data.redis.core.RedisTemplate;
  13. import org.springframework.data.redis.core.SetOperations;
  14. import org.springframework.data.redis.core.ValueOperations;
  15. import org.springframework.data.redis.core.ZSetOperations;
  16. import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
  17. import org.springframework.data.redis.serializer.RedisSerializer;
  18. import org.springframework.data.redis.serializer.StringRedisSerializer;
  19. import org.springframework.stereotype.Component;
  20.  
  21. /**
  22. * *************************************************************************
  23. * <PRE>
  24. * @ClassName: : RedisUtils
  25. *
  26. * @Description: : redis common utils
  27. *
  28. * @Creation Date : 12 Mar 2019 3:55:12 PM
  29. *
  30. * @Author : Sea
  31. *
  32. *
  33. * </PRE>
  34. **************************************************************************
  35. */
  36. @SuppressWarnings("all")
  37. @Component
  38. public class RedisUtils {
  39. @Autowired
  40. private RedisTemplate redisTemplate;
  41. /**
  42. * 解决乱码问题
  43. */
  44. @Autowired(required = false)
  45. public void setRedisTemplate(RedisTemplate redisTemplate) {
  46. RedisSerializer stringSerializer = new StringRedisSerializer();
  47. redisTemplate.setKeySerializer(stringSerializer);
  48. GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
  49. // redisTemplate.setValueSerializer(stringSerializer);
  50. redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
  51. redisTemplate.setHashKeySerializer(stringSerializer);
  52. redisTemplate.setHashValueSerializer(stringSerializer);
  53. this.redisTemplate = redisTemplate;
  54. }
  55.  
  56. /**
  57. * 写入缓存
  58. * @param key
  59. * @param value
  60. * @return
  61. */
  62. public boolean set(final String key, Object value) {
  63. boolean result = false;
  64. try {
  65. ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
  66. operations.set(key, value);
  67. result = true;
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. }
  71. return result;
  72. }
  73.  
  74. /**
  75. * * 写入缓存设置时效时间
  76. * @param key
  77. * @param value
  78. * @param expireTime days
  79. * @return
  80. */
  81. public boolean setwithExpireDay(final String key, Object value, Long expireTime) {
  82. boolean result = false;
  83. try {
  84. ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
  85. operations.set(key, value);
  86. redisTemplate.expire(key, expireTime, TimeUnit.DAYS);
  87. result = true;
  88. } catch (Exception e) {
  89. e.printStackTrace();
  90. }
  91. return result;
  92. }
  93.  
  94. /**
  95. * * 写入缓存设置时效时间
  96. * @param key
  97. * @param value
  98. * @param expireTime sec
  99. * @return
  100. */
  101. public boolean setwithExpireSec(final String key, Object value, Long expireTime) {
  102. boolean result = false;
  103. try {
  104. ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
  105. operations.set(key, value);
  106. redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
  107. result = true;
  108. } catch (Exception e) {
  109. e.printStackTrace();
  110. }
  111. return result;
  112. }
  113. /**
  114. * 批量删除对应的value
  115. * @param keys
  116. */
  117. public void remove(final String... keys) {
  118. for (String key : keys) {
  119. remove(key);
  120. }
  121. }
  122.  
  123. /**
  124. * 批量删除key
  125. * @param pattern
  126. */
  127. public void removePattern(final String pattern) {
  128. Set<Serializable> keys = redisTemplate.keys(pattern);
  129. if (keys.size() > )
  130. redisTemplate.delete(keys);
  131. }
  132. /**
  133. * 删除对应的value
  134. * @param key
  135. */
  136. public void remove(final String key) {
  137. if (exists(key)) {
  138. redisTemplate.delete(key);
  139. }
  140. }
  141. /**
  142. * 判断缓存中是否有对应的value
  143. * @param key
  144. * @return
  145. */
  146. public boolean exists(final String key) {
  147. return redisTemplate.hasKey(key);
  148. }
  149. /**
  150. * 读取缓存
  151. * @param key
  152. * @return
  153. */
  154. public Object get(final String key) {
  155. Object result = null;
  156. ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
  157. result = operations.get(key);
  158. return result;
  159. }
  160. /**
  161. * 哈希 添加
  162. * @param key
  163. * @param hashKey
  164. * @param value
  165. */
  166. public void hmSet(String key, Object hashKey, Object value){
  167. HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
  168. hash.put(key,hashKey,value);
  169. }
  170. /**
  171. * 哈希 添加
  172. * @param key
  173. * @param hashKey
  174. * @param value
  175. */
  176. public void hmSetwithExpireDay(String key, Object hashKey, Object value,Long expireTime){
  177. HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
  178. redisTemplate.expire(key,expireTime, TimeUnit.DAYS);
  179. // redisTemplate.expire(key,expireTime, TimeUnit.MINUTES);
  180. hash.put(key,hashKey,value);
  181. }
  182.  
  183. /**
  184. * 哈希获取数据
  185. * @param key
  186. * @param hashKey
  187. * @return
  188. */
  189. public Object hmGet(String key, Object hashKey){
  190. HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
  191. return hash.get(key,hashKey);
  192. }
  193.  
  194. /**
  195. * delete hashkey
  196. * @param key
  197. * @param hashKey
  198. * @return
  199. */
  200. public void hmDel(String key, Object hashKey){
  201. HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
  202. hash.delete(key,hashKey);
  203. }
  204.  
  205. public Map<Object, Object> hmGetentries(String key){
  206. HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
  207. Map<Object, Object> entries = hash.entries(key);
  208. return entries;
  209. }
  210.  
  211. /**
  212. * 列表添加
  213. * @param k
  214. * @param v
  215. */
  216. public void lPush(String k,Object v){
  217. ListOperations<String, Object> list = redisTemplate.opsForList();
  218. list.rightPush(k,v);
  219. }
  220.  
  221. /**
  222. * 列表获取
  223. * @param k
  224. * @param l
  225. * @param l1
  226. * @return
  227. */
  228. public List<Object> lRange(String k, long l, long l1){
  229. ListOperations<String, Object> list = redisTemplate.opsForList();
  230. return list.range(k,l,l1);
  231. }
  232.  
  233. /**
  234. * 集合添加
  235. * @param key
  236. * @param value
  237. */
  238. public void add(String key,Object value){
  239. SetOperations<String, Object> set = redisTemplate.opsForSet();
  240. set.add(key,value);
  241. }
  242.  
  243. /**
  244. * 集合获取
  245. * @param key
  246. * @return
  247. */
  248. public Set<Object> setMembers(String key){
  249. SetOperations<String, Object> set = redisTemplate.opsForSet();
  250. return set.members(key);
  251. }
  252.  
  253. /**
  254. * 有序集合添加
  255. * @param key
  256. * @param value
  257. * @param scoure
  258. */
  259. public void zAdd(String key,Object value,double scoure){
  260. ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
  261. zset.add(key,value,scoure);
  262. }
  263.  
  264. /**
  265. * 有序集合获取
  266. * @param key
  267. * @param scoure
  268. * @param scoure1
  269. * @return
  270. */
  271. public Set<Object> rangeByScore(String key,double scoure,double scoure1){
  272. ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
  273. return zset.rangeByScore(key, scoure, scoure1);
  274. }
  275. }

redisUtils的更多相关文章

  1. 单机版 RedisUtils({基本操作封装工具类})【三】

    <!--集成的RedisJAR--> <!--引入jedis需的jar包--> <dependency> <groupId>redis.clients& ...

  2. java redisUtils工具类很全

    GitHub地址:https://github.com/whvcse/RedisUtil redisUtils工具类: package com.citydo.utils; import org.spr ...

  3. Java-Class-C:com.ylbtech.api.platfrom.util.RedisUtils.class

    ylbtech-Java-Class-C:com.ylbtech.api.platfrom.util.RedisUtils.class 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶 ...

  4. SpringBoot整合Redis、mybatis实战,封装RedisUtils工具类,redis缓存mybatis数据 附源码

    创建SpringBoot项目 在线创建方式 网址:https://start.spring.io/ 然后创建Controller.Mapper.Service包 SpringBoot整合Redis 引 ...

  5. RedisUtils工具类

    package test.util; import org.springframework.beans.factory.annotation.Autowired; import org.springf ...

  6. (Java) RedisUtils

    package com.vcgeek.hephaestus.utils; import org.springframework.beans.factory.annotation.Autowired; ...

  7. Redis和SpringBoot整合RedisUtils类

    一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. Redis在JAVA中的运用(工具类)

    最近项目需要用redis在中间做缓存所以写了一个工具类作为练习用 redis版本:redis_version:3.0.504 用到阿里的解析JSON的库:fastjson import org.apa ...

  9. Redis命令

    redis的常用命令主要分为两个方面.一个是键值相关命令.一个是服务器相关命令(redis-cli进入终端) 1.键值相关命令 keys * 取出当前所有的key exists name 查看n是否有 ...

随机推荐

  1. PREV-9_蓝桥杯_大臣的旅费

    问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  2. MyBatis 别名标签 & sql的复用

    1.MyBatis 别名标签 如果在映射文件中,大量使用类名比较长,可以在sqlMapConfig.xml声明别名, 在映射文件中可以使用别名缩短配置,注意此配置要放在最前面 sqlMapConfig ...

  3. [UE4]Canvas Panel应用小技巧

    当设置为满屏拉伸的时候,只要把“偏移左侧”和“偏移底部”都设置为0,就会自动拉伸为整屏了.再也不需要手动担心拉不满屏了.

  4. c#第一周的游戏

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  5. synchronous-request-with-websockets

    https://stackoverflow.com/questions/13417000/synchronous-request-with-websockets

  6. PostgreSQL 一主多从(多副本,强同步)简明手册 - 配置、压测、监控、切换、防脑裂、修复、0丢失 - 珍藏级

    参考来源: https://github.com/digoal/blog/blob/master/201803/20180326_01.md#postgresql-一主多从多副本强同步简明手册---配 ...

  7. linux下新建(mkdir)、删除(rmdir)文件夹

    mkdir: 该命令:mkdir  ./folder2/folder3 ./当前文件下下一级目录 rmdir:移除文件夹

  8. Javascript-关于for in和forEach

    JS-for in:用来遍历对象 //遍历对象 for in var opts={name:'xiaofei',age:'28岁',job:'web前端工程师'} for (var k in opts ...

  9. idea vs

    F8对应vs的F10F7对应vs的F11F9对应vs的F5  ctrl+.对应vs的alt+回车  shift+alt+s   查找文本的出现位置就用Ctrl+F/Ctrl+Shift+F在当前窗口或 ...

  10. boost json序列化

    json序列化 #ifndef FND_JSON_OBJECT_H #define FND_JSON_OBJECT_H #include <sstream> #include <bo ...