package com.cinc.ecmp.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component; import java.io.Serializable;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* @Author:
* @Despriction: 缓存类
* @CreatedTime: 2019/6/5 11:06
* @ModifyBy:
* @ModifyTime:
* @ModifyDespriction:
* @Version: V1.0.0
*/ @Component
public class RedisUtil {
@Autowired
private StringRedisTemplate redisTemplate;
@Autowired
private RedisTemplate<String, Serializable> redisObjectTemplate;
private static final String CAPTCHA_KEY="shuttle:capthcha"; private static final String PREFIX="zhugy:"; private String inboxKey(String key) {
return PREFIX + key;
} public void set(String key, Object object) {
String json = JsonUtil.objectToJsonStr(object);
redisTemplate.boundValueOps(inboxKey(key)).set(json);
} public void set(String key, Object object, long timeout, TimeUnit timeUnit) {
String json = JsonUtil.objectToJsonStr(object);
redisTemplate.boundValueOps(inboxKey(key)).set(json, timeout, timeUnit);
} public void delete(String key) {
redisTemplate.delete(inboxKey(key));
} public void deleteKeys(String keyPattern) {
Set<String> keys = redisTemplate.keys(keyPattern);
redisTemplate.delete(keys);
} public <T> T get(String key, Class<T> clazz) {
if (redisTemplate.hasKey(inboxKey(key))) {
String value = redisTemplate.boundValueOps(inboxKey(key)).get();
return JsonUtil.jsonStrToOject(value, clazz);
} else {
return null;
}
} public <T> List<T> getList(String key, Class<T> clazz) {
if (redisTemplate.hasKey(inboxKey(key))) {
String value = redisTemplate.boundValueOps(inboxKey(key)).get();
return JsonUtil.jsonToList(value, clazz);
} else {
return null;
}
}
public void setCaptcha(String key, Serializable object, long timeout, TimeUnit timeUnit) {
redisObjectTemplate.opsForHash().put(CAPTCHA_KEY, key, object);
// redisObjectTemplate.opsForHash().put(key, object, timeout, timeUnit);
} public Object getCaptcha(String key) {
return redisObjectTemplate.opsForHash().get(CAPTCHA_KEY,key);
} public boolean hasKey(String key) {
return redisObjectTemplate.opsForHash().hasKey(CAPTCHA_KEY,key);
} public void deleteKey(String key) {
redisObjectTemplate.opsForHash().delete(CAPTCHA_KEY,key);
} public Set<Object> getKeys() {
return redisObjectTemplate.opsForHash().keys(CAPTCHA_KEY);
} public int getSize() {
return Math.toIntExact(redisObjectTemplate.opsForHash().size(CAPTCHA_KEY));
}
}

  

redisUtil的更多相关文章

  1. RedisUtil 工具类

    package com.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import red ...

  2. RedisUtil工具类

    转载:http://blog.csdn.net/liuxiao723846/article/details/50401406 1.使用了jedis客户端,对redis进行了封装,包括: 1)使用了re ...

  3. RedisUtil(未完,持续更新中....)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. Redis和springboot 整合redisUtil类

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

  5. RedisUtil: Jedis连接自动释放

    package cloud.app.prod.home.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedi ...

  6. RedisUtil,Redis工具类

    RedisUtil,Redis工具类 1.配置maven,增加依赖 2.配置工具类 1.配置maven,增加依赖 <dependency> <groupId>redis.cli ...

  7. 微信小程序之用户数据解密(七)

    [未经作者本人同意,请勿以任何形式转载] 经常看到有点的小伙伴在群里问小程序用户数据解密流程,所以打算写一篇关于小程序用户敏感数据解密教程: 加密过程微信服务器完成,解密过程在小程序和自身服务器完成, ...

  8. Java连接远程Redis

    redis-server &  //后台启动redis redis-cli //使用redis   打开redis.conf文件在NETWORK部分有说明   /usr/local/src   ...

  9. Spring+Mybatis基于注解整合Redis

    基于这段时间折腾redis遇到了各种问题,想着整理一下.本文主要介绍基于Spring+Mybatis以注解的形式整合Redis.废话少说,进入正题. 首先准备Redis,我下的是Windows版,下载 ...

随机推荐

  1. Mac下搭建python开发环境

    目录 1. 安装brew 2. 安装 mysql 3. 安装 pycharm 4. 安装python3.6 5. 安装virtualenvwrapper 6. 虚拟环境下安装mysqlclient 1 ...

  2. oracle如何利用hostname方式连接数据库

    host name方式只支持tcp/ip协议的小局域网 修改listener.ora中的如下信息 (SID_DESC = (GLOBAL_DBNAME = ur_hostname) --你的机器名 ( ...

  3. nodeJs学习-10 模板引擎 ejs语法案例

    ejs语法案例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  4. 【Django入坑之路】基础操作(过滤,继承,跳转)

    1:自定过滤器 1创建templatetags文件夹 2在里面创建自定义py文件:固定格式: from django import template from django.utils.safestr ...

  5. Java面向对象----多态概念,对象上下转型

    概念:同一操作作用于某一类对象,可以有不同的解释,产生不同的执行结果 多态存在的三个必要条件 需要存在继承和实现关系 同样的 方法调用而执行不同操作,运行不同的代码(重写操作) 在运行时父类或者接口的 ...

  6. 2019-9-18-WPF-笔刷绑定不上可能的原因

    title author date CreateTime categories WPF 笔刷绑定不上可能的原因 lindexi 2019-09-18 09:46:14 +0800 2019-9-18 ...

  7. qt 中创建一个工作线程(例子)

    当一个事件需要很长的处理时间,就创建一个工作线程,防止主界面卡死. 1.新建一个QT的gui项目,里面包含main.cpp,mainwindow.h,mainwindow.cpp,mainwindow ...

  8. LeetCode67 Add Binary

    题目: Given two binary strings, return their sum (also a binary string). (Easy) For example,a = " ...

  9. 使用HSV色彩空间遮罩绿色区域

    HSV 颜色空间 导入资源 In []: import matplotlib.pyplot as plt import matplotlib.image as mpimg ​ import numpy ...

  10. etcd 在超大规模数据场景下的性能优化

    作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目.etcd的应用场景很广,很多地方都用到了它,例如kuber ...