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. Windows Composition API 指南 - 认识 Composition API

    微软在 Windows 10中 面向通用 Windows 应用 (Universal Windows Apps, UWA) 新引入了一套用于用户界面合成的 API:Composition API.Co ...

  2. 初学Hadoop之中文词频统计

    1.安装eclipse 准备 eclipse-dsl-luna-SR2-linux-gtk-x86_64.tar.gz 安装 1.解压文件. 2.创建图标. ln -s /opt/eclipse/ec ...

  3. Nginx反向代理与负载均衡[转]

    nginx启动和关闭(centos平台) /usr/local/nginx/sbin/nginx #启动 /usr/local/nginx/sbin/nginx -s reload #平滑启动 vi ...

  4. Java transient和volatile关键字

    关键字Volatile Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总 ...

  5. 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列

    1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...

  6. JavaScript数组常见操作

    JavaScript数组常见操作 Tip: 右键在新标签中打开查看清晰大图 下面介绍JavaScript中的数组对象遍历.读写.排序等操作以及与数组相关的字符串处理操作 创建数组 一般使用数组字面量[ ...

  7. javascript12个你必须掌握的技能

    网站建设的时候,作为码农,总喜欢写一些高效且省事的代码,这里,dbestech为你提供关于JavaScript的使用技巧点. 1. 空(null, undefined)验证 当我们创建了一个新的变量, ...

  8. python memory-management

    http://deeplearning.net/software/theano/tutorial/python-memory-management.html

  9. java面试题之----mysql表优化方案

    本文转载自segmentfault,原文链接:https://segmentfault.com/a/1190000006158186. 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考 ...

  10. Flask入门 表单Flask-wtf form原生 Bootstrap渲染(七)

    (1) 原生的表单 模板页面,form表单form.html <form action="{{ url_for('/check/') }}" method='post'> ...