Jedis连接redis客户端
1 单点的redis利用jedis客户端连接
如何连接
//1 利用jedis连接对象操作redis
@Test
public void test01(){
//构造一个具有连接信息的jedis对象
//确定虚拟机linux系统的端口是开放的? 防火墙
Jedis jedis=new Jedis("192.168.60.131", 6379);
jedis.set("name", "hanlaoshi");
jedis.expire("name", 60);
}
模拟缓存逻辑在系统中执行步骤
//2 利用打桩语句,模拟缓存的使用和数据库的调用
@Test
public void test02(){
//查询商品为例,id=1的一个商品
String id="1";
System.out.println("用户访问http://www.jt.com/product/"+id);
//1 利用用户请求参数,生成当前业务逻辑的唯一key值 exists
//企业中的key值一般都是前缀,后缀 拼接id完成的
String key="product_"+id;
Jedis jedis=new Jedis("192.168.60.131", 6379);
if(jedis.exists(key)){//有的话返回true,没有返回false
//如果有数据,需要从redis中获取value,打印返回
String value=jedis.get(key);
System.out.println("从缓存获取value:"+value);
}else{//缓存没有数据
System.out.println("缓存无数据,数据从数据库获取");
//假设从数据库获取的数据
String value="id=1&productName=haha";
System.out.println("数据获取,value:"+value);
//返回之前,存在redis,供后续使用
jedis.set(key, value);
System.out.println("数据跟随响应返回");
}
}
hash取余的数据分片计算逻辑
key值是一个取值范围非常大的内存值;
hash取余公式 (key.hashCode()&Integer.MAX_VALUE)%N
N是数据分片节点的数量(3) [0,1,2] 取值结果=0的存储到6379=1的存储到6380,=2存储到6381
1 @Test
2 public void test04(){
3 Jedis jedis1=new Jedis("192.168.60.131", 6379);
4 Jedis jedis2=new Jedis("192.168.60.131", 6380);
5 Jedis jedis3=new Jedis("192.168.60.131", 6381);
6 for(int i=0;i<5000;i++){
7 String key="product_"+i;
8 String value="value_"+i;
9 //计算取余结果,同一个key总会得到一个相同的取余结果
10 int result=(key.hashCode()&Integer.MAX_VALUE)%3;
11 if(result==0){jedis1.set(key, value);}
12 if(result==1){jedis2.set(key, value);}
13 if(result==2){jedis3.set(key, value);}
14 }
15 }
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 但是使 ...
- 用Jedis连接Redis
jedis中的方法名,和Redis的命令几乎一样 1.jar包,作为测试只需要一个jar 2.代码 package com; import java.util.HashMap; import java ...
- jedis 连接 redis
一.连接单机版的 redis /** * 直接连接 redis * @throws Exception */ @Test public void test1() throws Exception { ...
- 20190928-02使用Redis客户端Jedis连接Redis,以及用Java代码操作Redis 000 030
启动redis package com.yujie.jedis; import java.util.HashMap; import java.util.Map; import java.util.Se ...
- 关于Jedis连接redis出现问题
环境说明: redis服务器系统:ubuntu ip 192.168.10.9 port 6379 两台电脑:一个作为专门的服务器,一个是开发环境,以下一顿操作皆基于开发环境. 就这样的简单的代码连接 ...
- Java 使用Jedis连接Redis数据库(-)
redis 安装: Linux 安装redis 1)下载jar包: 使用Jedis需要以下两个jar包: jedis-2.8.0.jar commons-pool2-2.4.2.jar 2)测试red ...
- Jedis连接Redis三种模式
这里说的三种工作模式是指: 1.单机模式 2.分片模式 3.集群模式(since 3.0) 说明图详见以下: 使用单机模式连接: private String addr="192.168.1 ...
- Jedis连接redis
今天与大家分享下,Jedis连接池使用.先看一段JAVA 代码: JedisPoolConfig config = new JedisPoolConfig(); con ...
- springboot 使用 jedis 连接 Redis 数据库
1. 在 pom.xml 配置文件中添加依赖 <!-- redis 依赖 --> <dependency> <groupId>org.springframework ...
随机推荐
- Linux内存管理机制简析
Linux内存管理机制简析 本文对Linux内存管理机制做一个简单的分析,试图让你快速理解Linux一些内存管理的概念并有效的利用一些管理方法. NUMA Linux 2.6开始支持NUMA( Non ...
- 读《Wireshark网络分析就这么简单》读书笔记
晚上花了两个多小时看完这本书,记录下一些看书过程中的笔记. 一.问题:A和B 是否能正常通信? 两台服务器A和服务器B的网络配置 A ...
- tomcat-dbcp数据库连接池配置以及使用时候的一些坑
一.数据库连接池 开发的时候经常会需要对数据库进行一些操作,比如说常见的增删改查之类的,当数据量小的时候,可以直接进行操作,但是当数据量增多的时候,每一次连接以及释放数据库都会耗费一定的时间,这个时候 ...
- C#委托的好处
C#委托的好处 先来看一个例子: 某人有三子,让他们各自带一样东西出门,并带回一头猎物. 可以理解为一种父亲对儿子的委托: 猎物 办法(工具 某工具) 三个人执行委托的方法各不相同 兔子 打猎(工具 ...
- JavaScirpt(JS)——BOM浏览器对象模型
一.BOM概念 BOM(Browser Object Model)即浏览器对象模型.可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关 ...
- Android中的Service与进程间通信(IPC)详解
Service 什么是Service 在后台长期运行的没有界面的组件.其他组件可以启动Service让他在后台运行,或者绑定Service与它进行交互,甚至实现进程间通信(IPC).例如,可以让服务在 ...
- WebSettings 最全属性说明
setAllowContentAccess (boolean allow) 是否允许在WebView中访问内容URL(Content Url),默认允许.内容Url访问允许WebView从安装在系统中 ...
- C++中char*与wchar_t*之间的转换
http://blog.163.com/tianshi_17th/blog/static/4856418920085209414977/ 关于C++中的char*与wchar_t*这两种类型的相互转换 ...
- Angular js 过滤器 笔记(转自菜鸟教程)
1.uppercase,lowercase 大小写转换 {{ "lower cap string" | uppercase }} // 结果:LOWER CAP STRING {{ ...
- Linux学习笔记之Linux第一课-基本介绍
Linux简介 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基 ...