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客户端的更多相关文章

  1. 通过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 但是使 ...

  2. 用Jedis连接Redis

    jedis中的方法名,和Redis的命令几乎一样 1.jar包,作为测试只需要一个jar 2.代码 package com; import java.util.HashMap; import java ...

  3. jedis 连接 redis

    一.连接单机版的 redis /** * 直接连接 redis * @throws Exception */ @Test public void test1() throws Exception { ...

  4. 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 ...

  5. 关于Jedis连接redis出现问题

    环境说明: redis服务器系统:ubuntu ip 192.168.10.9 port 6379 两台电脑:一个作为专门的服务器,一个是开发环境,以下一顿操作皆基于开发环境. 就这样的简单的代码连接 ...

  6. Java 使用Jedis连接Redis数据库(-)

    redis 安装: Linux 安装redis 1)下载jar包: 使用Jedis需要以下两个jar包: jedis-2.8.0.jar commons-pool2-2.4.2.jar 2)测试red ...

  7. Jedis连接Redis三种模式

    这里说的三种工作模式是指: 1.单机模式 2.分片模式 3.集群模式(since 3.0) 说明图详见以下: 使用单机模式连接: private String addr="192.168.1 ...

  8. Jedis连接redis

    今天与大家分享下,Jedis连接池使用.先看一段JAVA 代码:         JedisPoolConfig config = new JedisPoolConfig();         con ...

  9. springboot 使用 jedis 连接 Redis 数据库

    1. 在 pom.xml 配置文件中添加依赖 <!-- redis 依赖 --> <dependency> <groupId>org.springframework ...

随机推荐

  1. Linux内存管理机制简析

    Linux内存管理机制简析 本文对Linux内存管理机制做一个简单的分析,试图让你快速理解Linux一些内存管理的概念并有效的利用一些管理方法. NUMA Linux 2.6开始支持NUMA( Non ...

  2. 读《Wireshark网络分析就这么简单》读书笔记

    晚上花了两个多小时看完这本书,记录下一些看书过程中的笔记. 一.问题:A和B 是否能正常通信? 两台服务器A和服务器B的网络配置 A                                  ...

  3. tomcat-dbcp数据库连接池配置以及使用时候的一些坑

    一.数据库连接池 开发的时候经常会需要对数据库进行一些操作,比如说常见的增删改查之类的,当数据量小的时候,可以直接进行操作,但是当数据量增多的时候,每一次连接以及释放数据库都会耗费一定的时间,这个时候 ...

  4. C#委托的好处

    C#委托的好处 先来看一个例子: 某人有三子,让他们各自带一样东西出门,并带回一头猎物. 可以理解为一种父亲对儿子的委托: 猎物  办法(工具 某工具) 三个人执行委托的方法各不相同 兔子 打猎(工具 ...

  5. JavaScirpt(JS)——BOM浏览器对象模型

    一.BOM概念 BOM(Browser Object Model)即浏览器对象模型.可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关 ...

  6. Android中的Service与进程间通信(IPC)详解

    Service 什么是Service 在后台长期运行的没有界面的组件.其他组件可以启动Service让他在后台运行,或者绑定Service与它进行交互,甚至实现进程间通信(IPC).例如,可以让服务在 ...

  7. WebSettings 最全属性说明

    setAllowContentAccess (boolean allow) 是否允许在WebView中访问内容URL(Content Url),默认允许.内容Url访问允许WebView从安装在系统中 ...

  8. C++中char*与wchar_t*之间的转换

    http://blog.163.com/tianshi_17th/blog/static/4856418920085209414977/ 关于C++中的char*与wchar_t*这两种类型的相互转换 ...

  9. Angular js 过滤器 笔记(转自菜鸟教程)

    1.uppercase,lowercase 大小写转换 {{ "lower cap string" | uppercase }} // 结果:LOWER CAP STRING {{ ...

  10. Linux学习笔记之Linux第一课-基本介绍

    Linux简介 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基 ...