创建类 RedisConfig

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;@Configuration
@Slf4j
public class RedisConfig {@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private int port;@Value("${spring.redis.timeout}")private int timeout;@Value("${spring.redis.pool.max-idle}")private int maxIdle;@Value("${spring.redis.pool.max-wait}")private long maxWaitMillis;@Value("${spring.redis.password}")private String password;@Value("${spring.redis.block-when-exhausted}")private boolean  blockWhenExhausted;@Beanpublic JedisPool redisPoolFactory()  throws Exception{JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxIdle(maxIdle);jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);// 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认truejedisPoolConfig.setBlockWhenExhausted(blockWhenExhausted);jedisPoolConfig.setTestOnBorrow(true);jedisPoolConfig.setTestOnReturn(true);// 是否启用pool的jmx管理功能, 默认truejedisPoolConfig.setJmxEnabled(true);if ("".equals(password))  password = null;JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);log.info("JedisPool注入成功!!");log.info("redis地址:" + host + ":" + port);return jedisPool;}}

yml配置

spring:redis:# redis服务器地址(默认为loaclhost)host: 127.0.0.1# redis端口(默认为6379)port: 6379# redis访问密码(默认为空)password:# redis连接超时时间(单位毫秒)timeout: 10000# redis连接池配置pool:# 最大可用连接数(默认为8,负数表示无限)max-active: 5000# 最大空闲连接数(默认为8,负数表示无限)max-idle: 1500# 最小空闲连接数(默认为0,该值只有为正数才有用)min-idle: 0# 从连接池中获取连接最大等待时间(默认为-1,单位为毫秒,负数表示无限)max-wait: -1block-when-exhausted: truedatabase: 0

RedisUtil

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
import java.util.Map;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.SortingParams;@Component
@Slf4j
public class RedisUtil{private static JedisPool jedisPool;@Autowiredpublic RedisUtil(JedisPool jedisPool) {RedisUtil.jedisPool = jedisPool;}/*** <p>* 通过key获取储存在redis中的value* </p>* <p>* 并释放连接* </p>** @param key* @return 成功返回value 失败返回null*/public static   String get(String key) {Jedis jedis = null;String value = null;try {jedis = jedisPool.getResource();value = jedis.get(key);log.info(value);} catch (Exception e) {log.error(e.getMessage());} finally {returnResource(jedisPool, jedis);}return value;}/*** <p>* 通过key获取储存在redis中的value* </p>* <p>* 并释放连接* </p>** @param key* @return 成功返回value 失败返回null*/public static byte[] get(byte[] key) {Jedis jedis = null;byte[] value = null;try {jedis = jedisPool.getResource();value = jedis.get(key);} catch (Exception e) {log.error(e.getMessage());} finally {returnResource(jedisPool, jedis);}return value;}/*** <p>* 向redis存入key和value,并释放连接资源* </p>* <p>* 如果key已经存在 则覆盖* </p>** @param key* @param value* @return 成功 返回OK 失败返回 0*/public static String set(String key, String value) {Jedis jedis = null;try {jedis = jedisPool.getResource();return jedis.set(key, value);} catch (Exception e) {log.error(e.getMessage());return "0";} finally {returnResource(jedisPool, jedis);}}/*** <p>* 向redis存入key和value,并释放连接资源* </p>* <p>* 如果key已经存在 则覆盖* </p>** @param key* @param value* @return 成功 返回OK 失败返回 0*/public static String set(byte[] key, byte[] value) {Jedis jedis = null;try {jedis = jedisPool.getResource();return jedis.set(key, value);} catch (Exception e) {log.error(e.getMessage());return "0";} finally {returnResource(jedisPool, jedis);}}/*** <p>* 删除指定的key,也可以传入一个包含key的数组* </p>** @param keys 一个key 也可以使 string 数组* @return 返回删除成功的个数*/public static Long del(String... keys) {Jedis jedis = null;try {jedis = jedisPool.getResource();return jedis.del(keys);} catch (Exception e) {log.error(e.getMessage());return 0L;} finally {returnResource(jedisPool, jedis);}}/*** <p>* 删除指定的key,也可以传入一个包含key的数组* </p>* @param indexdb 选择redis库 0-15* @param keys 一个key 也可以使 string 数组* @return 返回删除成功的个数*/public static Long del(int indexdb,String... keys) {Jedis jedis = null;try {jedis = jedisPool.getResource();jedis.select(indexdb);return jedis.del(keys);} catch (Exception e) {log.error(e.getMessage());return 0L;} finally {returnResource(jedisPool, jedis);}}/*** <p>* 删除指定的key,也可以传入一个包含key的数组* </p>* @param indexdb 选择redis库 0-15* @param keys 一个key 也可以使 string 数组* @return 返回删除成功的个数*/public static Long del(int indexdb,byte[]... keys) {Jedis jedis = null;try {jedis = jedisPool.getResource();jedis.select(indexdb);return jedis.del(keys);} catch (Exception e) {log.error(e.getMessage());return 0L;} finally {returnResource(jedisPool, jedis);}}/*** <p>* 通过key向指定的value值追加值* </p>** @param key* @param str* @return 成功返回 添加后value的长度 失败 返回 添加的 value 的长度 异常返回0L*/public static Long append(String key, String str) {Jedis jedis = null;Long res = null;try {jedis = jedisPool.getResource();res = jedis.append(key, str);} catch (Exception e) {log.error(e.getMessage());return 0L;} finally {returnResource(jedisPool, jedis);}return res;}/*** <p>* 判断key是否存在* </p>** @param key* @return true OR false*/public static Boolean exists(String key) {Jedis jedis = null;try {jedis = jedisPool.getResource();return jedis.exists(key);} catch (Exception e) {log.error(e.getMessage());return false;} finally {returnResource(jedisPool, jedis);}}

PS:在配置类中踩了一个很大的坑,这里记录一下,配置文件中,不写password,在config类中获取的时候值为 “”, 但是这样会导致链接不到redis,所以加了这段代码 if ("".equals(password)) password = null; 这样就能链接上了

简单的springBoot集成jedis相关推荐

  1. 微信公众号简单接入springboot集成weixin4j

    微信公众号简单接入springboot集成weixin4j 内网穿透 登录地址:https://natapp.cn/ 注册用户,购买免费渠道 进行配置端口号(我配置的是8802) 根据网址进行下一步操 ...

  2. springboot集成jedis

    1 配置文件 # redis依赖 jedis:pool:host: 127.0.0.1port: 6379password: 123456timeout: 7200ssl: falseconfig:m ...

  3. springboot 集成支付宝支付

    最简单的springboot集成支付宝 1 注册沙箱 沙箱是一个模拟环境登录,百度蚂蚁金服开放平台,支付宝扫码登录如下 然后沙箱需要注册一下,非常之简单,注册好以后进入到如下页面,选沙箱工具,然后下载 ...

  4. 【快速上手系列】使用Springboot集成Swagger2的简单使用测试

    [快速上手系列]使用Springboot集成Swagger2的简单使用测试 简介 Swagger2是为了解决企业中接口(api)中定义统一标准规范的文档生成工具. 尤其是前后端分离时对一些业务接口也不 ...

  5. ES入门学习:ElasticSearch、Kibana、ik分词器的安装、简单使用及SpringBoot集成

    前言 es是采用Java语言开发,因此,想要安装运行es需要提前准备好jdk环境,关于linux配置jdk在前文linux配置jdk 本文主要介绍es的安装.kibana的安装和简单使用及ik分词器的 ...

  6. SpringBoot集成LayuiAdmin的简单使用

    SpringBoot+LayuiAdmin的简单使用 分享一下SpringBoot集成LayuiAdmin的一些心得体会,刚开始网上找了半天没找到集成教程,鼓捣了一阵只好自己上手了- 快速开始 1.准 ...

  7. 史上最简单的Elasticsearch教程:SpringBoot集成Elasticsearch 实时流量监测平台

    SpringBoot集成Elasticsearch 实时流量监测平台 目录: 第一章:初尝 Elasticsearch 第二章:玩转 Kibana 第三章:开发原生 Elasticsearch 案例 ...

  8. SpringBoot集成cas-client 客户端配置拦截过滤,绝对最简单有效,亲测

    我使用的cas-client客户端为2.0.0-GA.对于以前使用web.xml进行配置的只需要更改配置文件即可.此文我主要是针对用于SpringBoot集成客户端的过滤请求讲解. 由于最新的cas客 ...

  9. SpringBoot集成Redis用法笔记

    今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...

  10. 关于springboot集成redis及关于redis的Key 乱码问题

    一.在pom文件中引入redis <dependency><groupId>org.springframework.boot</groupId><artifa ...

最新文章

  1. Apache服务器学习笔记
  2. Kafka消息格式中的变长字段(Varints)
  3. java锁方法和锁代码块_java的同步方法和同步代码块,对象锁,类锁区别
  4. 谈谈Hybird3D中的光栅化优化
  5. 用JavaScript语言判断一个三位数是否为水仙花数
  6. 论文学习9-Bidirectional LSTM-CRF Models for Sequence Tagging(LSTM,BILSTM,LSTM-CRF,BILSTM-CRF
  7. MIP开发教程(一) MIP-CLI工具安装与环境部署
  8. 中国中医科学院中药资源中心2021年公开招聘应届毕业生预公告
  9. sqlserver 参数化查询 允许为null_关于SQL Server的insert执行的秘密(上)一个最简单的insert分析...
  10. [BZOJ3230]相似子串
  11. x264源代码简单分析:编码器主干部分-2
  12. 分时操作系统和多道程序操作系统的区别
  13. 如何修改PDF文档,怎么编辑PDF背景
  14. 要尊重员工的正当权益
  15. Visio使用经验汇集
  16. AWVS12 安装教程(详细附图)
  17. 微信小程序自定义Modal弹框
  18. java代码混淆(使用 ProGuard maven插件)
  19. idea无法切换成中文
  20. js设计程序实现摄氏度和华氏度转换

热门文章

  1. JDBC实现增删改查功能
  2. Linux学习笔记3 - 目录和文件管理
  3. python aiompq集群_python操作memcached以及分布式
  4. php扩展leonis,LNMP环境部署
  5. 动物统计 nyoj286
  6. 2万字-Python 用 XGBoost 进行梯度提升的数据准备(建议收藏)
  7. mysql 5.6.15.0 源码_源码编译mysql-5.6.15
  8. php类的实例化方法吗,php实例化一个类的具体方法
  9. mysql体系结构内存_mysql 内存体系结构--session
  10. python决策树分类wine_Python写算法:二元决策树