简单的springBoot集成jedis
创建类 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相关推荐
- 微信公众号简单接入springboot集成weixin4j
微信公众号简单接入springboot集成weixin4j 内网穿透 登录地址:https://natapp.cn/ 注册用户,购买免费渠道 进行配置端口号(我配置的是8802) 根据网址进行下一步操 ...
- springboot集成jedis
1 配置文件 # redis依赖 jedis:pool:host: 127.0.0.1port: 6379password: 123456timeout: 7200ssl: falseconfig:m ...
- springboot 集成支付宝支付
最简单的springboot集成支付宝 1 注册沙箱 沙箱是一个模拟环境登录,百度蚂蚁金服开放平台,支付宝扫码登录如下 然后沙箱需要注册一下,非常之简单,注册好以后进入到如下页面,选沙箱工具,然后下载 ...
- 【快速上手系列】使用Springboot集成Swagger2的简单使用测试
[快速上手系列]使用Springboot集成Swagger2的简单使用测试 简介 Swagger2是为了解决企业中接口(api)中定义统一标准规范的文档生成工具. 尤其是前后端分离时对一些业务接口也不 ...
- ES入门学习:ElasticSearch、Kibana、ik分词器的安装、简单使用及SpringBoot集成
前言 es是采用Java语言开发,因此,想要安装运行es需要提前准备好jdk环境,关于linux配置jdk在前文linux配置jdk 本文主要介绍es的安装.kibana的安装和简单使用及ik分词器的 ...
- SpringBoot集成LayuiAdmin的简单使用
SpringBoot+LayuiAdmin的简单使用 分享一下SpringBoot集成LayuiAdmin的一些心得体会,刚开始网上找了半天没找到集成教程,鼓捣了一阵只好自己上手了- 快速开始 1.准 ...
- 史上最简单的Elasticsearch教程:SpringBoot集成Elasticsearch 实时流量监测平台
SpringBoot集成Elasticsearch 实时流量监测平台 目录: 第一章:初尝 Elasticsearch 第二章:玩转 Kibana 第三章:开发原生 Elasticsearch 案例 ...
- SpringBoot集成cas-client 客户端配置拦截过滤,绝对最简单有效,亲测
我使用的cas-client客户端为2.0.0-GA.对于以前使用web.xml进行配置的只需要更改配置文件即可.此文我主要是针对用于SpringBoot集成客户端的过滤请求讲解. 由于最新的cas客 ...
- SpringBoot集成Redis用法笔记
今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...
- 关于springboot集成redis及关于redis的Key 乱码问题
一.在pom文件中引入redis <dependency><groupId>org.springframework.boot</groupId><artifa ...
最新文章
- Apache服务器学习笔记
- Kafka消息格式中的变长字段(Varints)
- java锁方法和锁代码块_java的同步方法和同步代码块,对象锁,类锁区别
- 谈谈Hybird3D中的光栅化优化
- 用JavaScript语言判断一个三位数是否为水仙花数
- 论文学习9-Bidirectional LSTM-CRF Models for Sequence Tagging(LSTM,BILSTM,LSTM-CRF,BILSTM-CRF
- MIP开发教程(一) MIP-CLI工具安装与环境部署
- 中国中医科学院中药资源中心2021年公开招聘应届毕业生预公告
- sqlserver 参数化查询 允许为null_关于SQL Server的insert执行的秘密(上)一个最简单的insert分析...
- [BZOJ3230]相似子串
- x264源代码简单分析:编码器主干部分-2
- 分时操作系统和多道程序操作系统的区别
- 如何修改PDF文档,怎么编辑PDF背景
- 要尊重员工的正当权益
- Visio使用经验汇集
- AWVS12 安装教程(详细附图)
- 微信小程序自定义Modal弹框
- java代码混淆(使用 ProGuard maven插件)
- idea无法切换成中文
- js设计程序实现摄氏度和华氏度转换
热门文章
- JDBC实现增删改查功能
- Linux学习笔记3 - 目录和文件管理
- python aiompq集群_python操作memcached以及分布式
- php扩展leonis,LNMP环境部署
- 动物统计 nyoj286
- 2万字-Python 用 XGBoost 进行梯度提升的数据准备(建议收藏)
- mysql 5.6.15.0 源码_源码编译mysql-5.6.15
- php类的实例化方法吗,php实例化一个类的具体方法
- mysql体系结构内存_mysql 内存体系结构--session
- python决策树分类wine_Python写算法:二元决策树