jedis

Spring集成jedis简单实例

浪尽此生 提交于 2020-01-11 10:09:34
jedis是redis的java客户端,spring将redis连接池作为一个bean配置。 redis连接池分为两种,一种是“redis.clients.jedis.ShardedJedisPool”,这是基于hash算法的一种分布式集群redis客户端连接池。 另一种是“redis.clients.jedis.JedisPool”,这是单机环境适用的redis连接池。 maven导入相关包: <!-- redis依赖包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> ShardedJedisPool 是redis集群客户端的对象池,可以通过他来操作ShardedJedis,下面是ShardedJedisPool的xml配置,spring-jedis.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=

redis整合springboot的helloworld

蹲街弑〆低调 提交于 2020-01-11 10:08:51
引入依赖 compile 'org.springframework.boot:spring-boot-starter-data-redis' 使用redis有两种方法 1.Jedis Jedis jedis = new Jedis("localhost"); 2.RedisTemplate @Autowired private RedisTemplate redisTemplate; 如果使用RedisTemplate的话,要在application.properties中配置信息,这里我使用Jedis比较简单 redis的自动配置 在application.properties文件下 #redis的springboot的自动配置 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 #

redis实现数据的增删查改

≯℡__Kan透↙ 提交于 2020-01-11 00:05:43
redis实现数据的增删查改 一、springboot集成redis实现数据的增删查改 1、添加依赖 < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-data-redis </ artifactId > < version > 2.2.2.RELEASE </ version > </ dependency > 因为我部署的是redis5.0.7版本,而springboot是从2.2.0版本开始集成redis5的stream类型,所以版本一定要高于2.2.0。不然是无法使用redis5版本的stream数据类型。当然如果不使用stream类型的话,版本可以适当低一点。 2、配置文件application.yaml spring : application : name : redis - cluster - local redis : cluster : nodes : ip : port , ip : port ... #cluster host : ip # standalone password : '' port : port timeout : 30000 jedis : pool : max-active : 8 max

Spring 极速集成注解 redis 实践

隐身守侯 提交于 2020-01-10 13:58:00
Redis 做为基于内存的 Key-Value 数据库,用来做缓存服务器性价比相当高。 官方推出的面向 Java 的 Client Jedis,提供了很多接口和方法,可以让 Java 操作使用 Redis。 Spring 团队对 Jedis 进行了封装,独立为 spring-data-redis 项目,配合 spring 特性并集成 Jedis 的一些命令和方法。 本文重点描述集成过程,能让你迅速的通过 spring-data-redis 将 redis 集成到 spring 项目中,毕竟大家都忙的。 1. 添加项目依赖 <!--redis 缓存--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.4.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 2. 添加 spring-redis-context 配置 <?xml version="1.0"

redis内置集群通信机制

廉价感情. 提交于 2020-01-10 03:56:17
你能聊聊redis cluster集群模式的原理吗? 1、面试题redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗? 2、面试官心理分析 在以前,如果前几年的时候,一般来说,redis如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些redis中间件,你读写redis中间件,redis中间件负责将你的数据分布式存储在多台机器上的redis实例中。这两年,redis不断在发展,redis也不断的有新的版本,redis cluster,redis集群模式,你可以做到在多台机器上,部署多个redis实例,每个实例存储一部分的数据,同时每个redis实例可以挂redis从实例,自动确保说,如果redis主实例挂了,会自动切换到redis从实例顶上来。现在redis的新版本,大家都是用redis cluster的,也就是redis原生支持的redis集群模式,那么面试官肯定会就redis cluster对你来个几连炮。要是你没用过redis cluster,正常,以前很多人用codis之类的客户端来支持集群,但是起码你得研究一下redis cluster吧。 redis如何在保持读写分离+高可用的架构下,还能横向扩容支持1T+的海量数据

Redis底层协议RESP详解

穿精又带淫゛_ 提交于 2020-01-09 14:26:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 带着这两个问题,来一探究竟。 什么是 RESP? 是基于TCP的应用层协议 RESP(REdis Serialization Protocol); RESP底层采用的是TCP的连接方式,通过tcp进行数据传输,然后根据解析规则解析相应信息, Redis 的客户端和服务端之间采取了一种独立名为 RESP(REdis Serialization Protocol) 的协议,作者主要考虑了以下几个点: 容易实现 解析快 人类可读 RESP可以序列化不同的数据类型,如整数,字符串,数组。还有一种特定的错误类型。请求从客户端发送到Redis服务器,作为表示要执行的命令的参数的字符串数组。Redis使用特定于命令的数据类型进行回复。 RESP是二进制安全的,不需要处理从一个进程传输到另一个进程的批量数据,因为它使用前缀长度来传输批量数据。 注意:RESP 虽然是为 Redis 设计的,但是同样也可以用于其他 C/S 的软件。Redis Cluster使用不同的二进制协议(gossip),以便在节点之间交换消息。 关于协议的具体描述,官方文档 https://redis.io/topics/protocol RESP协议说明 RESP协议是在Redis 1.2中引入的,但它成为了与Redis 2

Jedis中使用一致性Hash解决均衡问题

可紊 提交于 2020-01-09 04:17:12
Jedis中使用一致性Hash解决均衡问题 知识点1: SortedMap, TreeMap 参考: https://www.cnblogs.com/jpfss/p/9772818.html , https://www.jianshu.com/p/e11fe1760a3d 知识点2: 一致性hash概念 参考: https://www.jianshu.com/p/e968c081f563 知识点3: MurmurHash算法 参考: https://blog.csdn.net/qq_33408113/article/details/82635009 源代码讲解: https://www.cnblogs.com/intsmaze/p/9629967.html 参考: https://www.jianshu.com/p/e11fe1760a3d 来源: CSDN 作者: sanshizi 链接: https://blog.csdn.net/sanshizi/article/details/103892960

使用jedis连接redis-cluster进行字符串数据结构api演示

天大地大妈咪最大 提交于 2020-01-09 04:12:52
继上一篇创建测试基类之后,可以根据父类创建子类进行专门的测试,下面将针对基于jedis连接redis cluster集群的操作做一个系列文章。本章内容讲解redis 字符串数据结构的一些jedis操作。 package com.coderman.jedis.clusterdemo; import com.alibaba.fastjson.JSON; import com.coderman.jedis.dto.PersonDto; import com.coderman.jedis.serialize.ProtoStuffSerializerUtil; import org.junit.Test; import java.util.ArrayList; import java.util.List; /** * @Author fanchunshuai * @Date 2019/12/28 18 * @Description:Redis的String数据结构练习 * * 字符串类型的值实际可以 是字符串(简单的字符串、复杂的字符串(例如JSON、XML))、 * 数字 (整数、浮点数),甚至是二进制(图片、音频、视频),但是值最大不能 超过512MB。 * *字符串类型的内部编码有3种: * ·int:8个字节的长整型。 * ·embstr:小于等于39个字节的字符串。 * ·raw

SpringBoot学习- 5、整合Redis

落爺英雄遲暮 提交于 2020-01-09 01:26:52
SpringBoot项目中访问Redis主要有两种方式:JedisPool和RedisTemplate,本文使用JedisPool 1、pom.xml添加depend <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> <scope>compile</scope> </dependency> 2、下面封装一个工具类,utils新建JedisPoolUtil,先只封装读写字符串 package com.jgui.utils; import com.jgui.config.RedisConfig; import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework

jedis使用过程中遇到的异常

心不动则不痛 提交于 2020-01-07 05:05:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这种情况,起初以为是pool的配置不对,但是在调大了各种相应配置之后这样的问题还是经常出现,在查看了源码之后发现 分析了一下: 出现这种问题的原因是jedis 在borrow对象时,由于配置了TestOnBorrow=true,则会在借用前测试一下与redis之间的通信是否正常,若与redis之间的socket断了,或是ping redis返回的不是正常的pong,那么就直接抛出了异常。 解决方案: 目前只想到这种简单的方案,至于为什么会出现偶尔的redis通信问题,有待以后慢慢研究! 后续: 由于某一redis操作耗时,导致其他操作无法正常进行 来源: oschina 链接: https://my.oschina.net/u/1381995/blog/184081