Jedis连接redis客户端

1 单点的redis利用jedis客户端连接

  如何连接

1 //1 利用jedis连接对象操作redis
2     @Test
3     public void test01(){
4         //构造一个具有连接信息的jedis对象
5         //确定虚拟机linux系统的端口是开放的? 防火墙
6         Jedis jedis=new Jedis("192.168.60.131", 6379);
7         jedis.set("name", "hanlaoshi");
8         jedis.expire("name", 60);
9 }

  模拟缓存逻辑在系统中执行步骤

 1 //2 利用打桩语句,模拟缓存的使用和数据库的调用
 2     @Test
 3     public void test02(){
 4         //查询商品为例,id=1的一个商品
 5         String id="1";
 6         System.out.println("用户访问http://www.jt.com/product/"+id);
 7     //1 利用用户请求参数,生成当前业务逻辑的唯一key值 exists
 8     //企业中的key值一般都是前缀,后缀 拼接id完成的
 9         String key="product_"+id;
10         Jedis jedis=new Jedis("192.168.60.131", 6379);
11         if(jedis.exists(key)){//有的话返回true,没有返回false
12             //如果有数据,需要从redis中获取value,打印返回
13             String value=jedis.get(key);
14             System.out.println("从缓存获取value:"+value);
15         }else{//缓存没有数据
16             System.out.println("缓存无数据,数据从数据库获取");
17             //假设从数据库获取的数据
18             String value="id=1&productName=haha";
19             System.out.println("数据获取,value:"+value);
20             //返回之前,存在redis,供后续使用
21             jedis.set(key, value);
22             System.out.println("数据跟随响应返回");
23         }
24     }

  hash取余的数据分片计算逻辑

        key值是一个取值范围非常大的内存值;
        hash取余公式 (key.hashCode()&Integer.MAX_VALUE)%N
        N是数据分片节点的数量(3) [0,1,2] 取值结果=0的存储到6379=1的存储到6380,=2存储到6381

 1  1     @Test
 2  2         public void test04(){
 3  3             Jedis jedis1=new Jedis("192.168.60.131", 6379);
 4  4             Jedis jedis2=new Jedis("192.168.60.131", 6380);
 5  5             Jedis jedis3=new Jedis("192.168.60.131", 6381);
 6  6             for(int i=0;i<5000;i++){
 7  7                 String key="product_"+i;
 8  8                 String value="value_"+i;
 9  9                 //计算取余结果,同一个key总会得到一个相同的取余结果
10 10                 int result=(key.hashCode()&Integer.MAX_VALUE)%3;
11 11                 if(result==0){jedis1.set(key, value);}
12 12                 if(result==1){jedis2.set(key, value);}
13 13                 if(result==2){jedis3.set(key, value);}
14 14             }
15 15 }

原文地址:https://www.cnblogs.com/nanlinghan/p/9939076.html

时间: 2024-10-06 10:00:32

Jedis连接redis客户端的相关文章

通过jedis连接redis单机成功,使用redis客户端可以连接集群,但使用JedisCluster连接redis集群一直报Could not get a resource from the pool

一,问题描述: (如题目)通过jedis连接redis单机成功,使用JedisCluster连接redis集群一直报Could not get a resource from the pool 但是使用redis客户端可以连接集群(我使用的redis desktop manager) 在java中通过jedis连接redis单机也成功,但使用JedisCluster连接redis集群一直报Could not get a resource from the pool, 我以命令行方式操作是没问题的

使用jedis连接redis可能会出现的问题及解决方案

使用jedis连接redis可能会出现的问题及解决方案: 1)ip绑定问题 Connection refused: connect 把Redis的配置文件redis.conf里的 bind localhost(或者bind 127.0.0.1,表明只有该主机才能访问)注释掉. 或者修改为: bind ip     表明,只能通过ip访问. 2).保护模式 DENIED Redis is running in protected mode because protected mode is ena

关于Jedis连接redis出现问题

环境说明: redis服务器系统:ubuntu ip 192.168.10.9 port 6379 两台电脑:一个作为专门的服务器,一个是开发环境 就这样的简单的代码连接redis服务器 import redis.clients.jedis.Jedis; public class Test { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.10.9"); jedis.auth(&quo

Jedis连接redis

今天与大家分享下,Jedis连接池使用.先看一段JAVA 代码:         JedisPoolConfig config = new JedisPoolConfig();         config.setMaxIdle(100);         JedisPool pool = new JedisPool(config, "ip地址", 6379);         return pool.getResource(); 这段代码是最简单连接redis的连接池代码,单机连接,

Jedis连接Redis三种模式

这里说的三种工作模式是指: 1.单机模式 2.分片模式 3.集群模式(since 3.0) 说明图详见以下: 使用单机模式连接: 1 private String addr="192.168.1.1"; 2 private String port="6236"; 3 private String key="key"; 4 private Jedis jedis=new Jedis(addr,port);//Jedis获取到的Redis数据在jed

使用Jedis连接Redis

关键字:Redis Jedis 多线程 使用jedis作为客户端连接redis,Jedis封装了许多对reids的操作,可以很方便的实现对redis的访问 1 <dependency> 2 <groupId>redis.clients</groupId> 3 <artifactId>jedis</artifactId> 4 <version>2.8.1</version> 5 </dependency> 在本机

jedis 连接 redis:Could not get a resource from the pool——我的出错原因和解决办法

windows 下安装的,本机使用 现象:刚装好开发使用好好的, 重启电脑后就报这个错 网上的所有可能都试过,没有用. 最后,放弃所有包装,用最原始的代码进行连接测试: Jedis jedis=new Jedis("127.0.0.1"); jedis.auth("7777");//password jedis.set("firstKey", "hello redis!"); ERR Client sent AUTH, but

Redis02 Redis客户端之Java

1 查看支持Java的redis客户端 本博文采用 Jedis 作为redis客户端,采用 commons-pool2 作为连接redis服务器的连接池 2 下载相关依赖与实战 2.1 到 Repository官网下载jar包 jedis <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> &

java 连接Redis及demo

java连接linux Redis遇到的问题 昨天在Linux搭建了Redis服务,今天使用java连接测试了一下.要想使用java连接redis服务,就离不开jedis-2.6.1.jar.使用jedis连接redis十分方便.下面我们测试一下是否连接上redis服务: package com.coinvs.redis.util;import redis.clients.jedis.Jedis;//import redis.clients.jedis.Jedis;public class Ra