jedis

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

坚强是说给别人听的谎言 提交于 2020-01-27 04:04:31
继上一篇 使用jedis连接redis-cluster进行hash数据结构api演示 之后的第四章节。本章内容讲解使用jedis连接redis-cluster进行zset数据结构api演示。 package com . coderman . jedis . clusterdemo ; import com . alibaba . fastjson . JSON ; import org . junit . Test ; import redis . clients . jedis . ScanResult ; import redis . clients . jedis . Tuple ; import java . util . ArrayList ; import java . util . List ; import java . util . Random ; import java . util . Set ; /** * @Author fanchunshuai * @Date 2019/12/30 18 * @Description: * redis的sorted set api使用 */ public class ZSetAPITest extends ClusterTest { //某某大学大一一班 private static final String

Redis哨兵

风流意气都作罢 提交于 2020-01-26 02:11:58
  1. 需求     如果搭建redis分片,如果其中一台服务器宕机.则导致整个分片不能正常使用.     需求:能否实现服务器尽可能”不宕机”.(高可用)   2. Redis哨兵工作原理          前提:如果需要实现redis高可用,必须先配置主从结构:     1. 用户通过哨兵之后连接当前集群中的主机;     2. 哨兵通过心跳检测机制实时向主机发出心跳检测:PING-PONG。如果连续3次没有收到主机的回执,则发现主机宕机,开始进行推选;     3. 哨兵通过连接主机时已经获取了主机的全部信息。如果主机宕机,哨兵通过推选的机制选择一台从机当做新的主机,之后将其他的服务器改为当前主机的从机;   3. 哨兵高可用搭建     1. 复制目录 cp -r shards sentinel     2. 删除持久化文件       因为redis节点的配置文件名称都是一致的,启动redis时会导致内存数据都是相同,所以必须先删除持久化文件: rm -f dump.rdb appendonly.aof     3. 主从搭建       a. 启动三台redis       b. 检查redis节点状态( 执行命令 src/redis-cli -p 6379 进入redis操作界面 ,执行 info replication 查看节点状态)               

jedis not releasing connections / jedis leaking connections / jedis connection pool exhausted over time

一笑奈何 提交于 2020-01-25 09:02:34
问题 I've a tomcat server and using jedis client to connect to it. The jedis version I am using is "3.0.0-m1" and tomcat 8.0.15 After connecting and after a few hours I see the below exceptions. Any help on this? redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host test-1234.catalog.com:1234 Caused by: java.net.UnknownHostException: test-1234.catalog.com:1234 回答1

Redis开发规范

旧时模样 提交于 2020-01-24 15:29:13
Redis开发规范 参考: https://yq.aliyun.com/articles/531067 一、键值设计 1. key名设计 (1)【建议】: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)【建议】:简洁性 保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如: user:{uid}:friends:messages:{mid}简化为u:{uid}:fr:m:{mid}。 (3)【强制】:不要包含特殊字符 反例:包含空格、换行、单双引号以及其他转义字符 详细解析 2. value设计 (1)【强制】:拒绝bigkey(防止网卡流量、慢查询) string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000。 反例:一个包含200万个元素的list。 非字符串的bigkey,不要使用del删除,使用hscan、sscan、zscan方式渐进式删除,同时要注意防止bigkey过期时间自动删除问题(例如一个200万的zset设置1小时过期,会触发del操作,造成阻塞,而且该操作不会不出现在慢查询中(latency可查)), 查找方法 和 删除方法 详细解析 (2)【推荐】:选择适合的数据类型。 例如:实体类型

springboot使用redis

喜你入骨 提交于 2020-01-24 04:50:04
1、pom文件中引入 spring-boot-starter-redis <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency> 2、添加application.properties配置文件 # REDIS (RedisProperties) # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=192.168.0.58 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.pool.max-idle=8 # 连接池中的最小空闲连接 spring.redis.pool.min-idle=0 # 连接超时时间(毫秒) spring

Redis的Java客户端Jedis

与世无争的帅哥 提交于 2020-01-23 22:12:40
安装 开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Java redis 驱动: 首先你需要下载驱动包 下载 jedis.jar,确保下载最新驱动包。 在你的 classpath 中包含该驱动包。 连接到 redis 服务 实例 import redis . clients . jedis . Jedis ; public class RedisJava { public static void main ( String [ ] args ) { //连接本地的 Redis 服务 Jedis jedis = new Jedis ( "localhost" ) ; System . out . println ( "连接成功" ) ; //查看服务是否运行 System . out . println ( "服务正在运行: " + jedis . ping ( ) ) ; } } 编译以上 Java 程序,确保驱动包的路径是正确的。 连接成功 服务正在运行: PONG Redis Java String(字符串) 实例 实例 import redis . clients . jedis . Jedis ;

Java 连接 redis

▼魔方 西西 提交于 2020-01-23 20:50:29
在使用 Java 连接 redis 之前,需先: 配置服务器的防火墙策略。 修改 redis 配置文件。 配置防火墙策略 打开 /etc/sysconfig/iptables 文件: # vim /etc/sysconfig/iptables 开放 6379 端口(第 11 行): # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT -A INPUT -m state --state NEW -m

Redis-Jedis使用Scan实现redis前缀key查找

北城以北 提交于 2020-01-23 10:53:18
  我们都知道Redis是单线程的,因此我们在使用一些命令(例如keys)的时候需要非常谨慎,可能一不小心就会阻塞进程,进而引起雪崩,这时候 scan命令就有了比较明显的优势; scan命令简介:   SCAN 命令(在Redis2.8版本引入)是一个基于游标的迭代器(cursor based iterator): SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程,当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束。    命令格式如下: SCAN cursor [MATCH pattern] [COUNT count]   其中cursor为游标,MATCH和COUNT为可选参数; 迭代过程示例如下(查询以PLFX-ZZSFP-为前缀的key): 127.0.0.1:6379> scan 0 match PLFX-ZZSFP-* count 5 1) "1536" 2) (empty list or set) 127.0.0.1:6379> scan 1536 match PLFX-ZZSFP-* count 5 1) "1280" 2) (empty list or set) 127.0.0

redis 分布式锁实现

天大地大妈咪最大 提交于 2020-01-22 22:44:44
/** * FileName: RedisDistributedLock * Author: XXXX * Date: 2019/5/13 16:56 * Description: redis 分布式锁实现 * History: * <author> <time> <version> <desc> * 作者姓名 修改时间 版本号 描述 */ package com.xxx.cloud.platfrom.common.redis.lock; import com.xxx.cloud.common.core.lock.AbstractDistributedLock; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import

springboot 集成 jedis

﹥>﹥吖頭↗ 提交于 2020-01-22 18:39:37
springboot 集成 jedis 非常简单: 第一步:在配置文件properties配置 连接信息 第二部:编写配置类 第三部:调用 第一步具体: pom依赖要加上 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.2</version> </dependency> properties配置文件: #jedis配置=============================== #redis服务器地址 jedis.pool.host=192.168.184.100 #redis服务器端口 jedis.pool.port=6379 #最大连接数 jedis.pool.config.maxTotal=100 #最小空闲连接数 jedis.pool.config.maxIdle=10 #获取连接时的最大等待毫秒数 jedis.pool.config.maxWaitMillis=100000 #redis的auth密码 jedis.pool.password=0.0.0. 第二部:编写配置文件给spring管理 package com.cy.example.config; import org.slf4j.Logger; import org.slf4j