栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

非关系型数据库之Redis【Jedis客户端+Jedis连接集群】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

非关系型数据库之Redis【Jedis客户端+Jedis连接集群】

这里写目录标题
    • 1. Jedis介绍
    • 2. 前期准备【设置防火墙】
      • 2.1 已启动防火墙服务,添加白名单
      • 2.2 未启动防火墙服务(或提前关闭防火墙服务)
    • 3. 工程搭建
      • 3.1 单实例连接 redis
      • 3.2 使用 jedis 连接池连接 redis
    • 4. Jedis连接集群
      • 4.1 代码

1. Jedis介绍

Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。

在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis。

2. 前期准备【设置防火墙】

首先,redis配置 默认禁止远程连接,所以,想用物理机Jedis 访问 redis 虚拟服务器,需要为被访问端口设置防火墙白名单。如果不设置会报错:

redis远程连接失败,连接超时redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutExce

其次,Centos7 默认使用的是firewall作为防火墙,没有 iptable 文件。本文使用的Linux操作系统为CentOS 7。所以下面 只讲解 CentOS 7 如何设置防火墙白名单

2.1 已启动防火墙服务,添加白名单

首先, 修改 redis.conf 配置

  • vim redis.conf
  • 下面是要修改的内容
bind 127.0.0.1  这个需要注释掉,去掉#
protected-mode no

然后,检查redis默认端口(6379)添加到白名单

  • firewall-cmd --zone=public --add-port=6379/tcp --permanent
  • 输出success则为成功

重启防火墙,再次检查端口是否开启firewall-cmd --query-port=6379/tcp

  • systemctl restart firewalld
  • firewall-cmd --query-port=6379/tcp

2.2 未启动防火墙服务(或提前关闭防火墙服务)
  • 修改/ect/firewalld/zones/public.xml文件,并重启。

3. 工程搭建
  • 首先 eclipse 创建一个java 工程
  • 然后,添加下面两个 jar 包
3.1 单实例连接 redis

首先,开启服务器

import org.junit.Test;
import redis.clients.jedis.Jedis;

public class JedisClient {
	
	@Test
	public void jedisClient() {
		Jedis jedis = new Jedis("192.168.188.127",6379);
		
		//选择 0 号数据库 :0-15
		jedis.select(0);
		
		//通过jedis赋值
		jedis.set("s2", "222");
		
		//通过jedis取值
		String result = jedis.get("s2");
		System.out.println(result);
		
		jedis.close();
	}
}

输出:

222
3.2 使用 jedis 连接池连接 redis
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisClient {
	
	@Test
	public void jedisPool() {
		//使用jedis连接池连接redis服务器
		JedisPool jedispool = new JedisPool("192.168.188.127",6379);
		
		//通过连接池获取Jedis对象
		Jedis jedis = jedispool.getResource();
		
		//jedis.set("s4", "444");
		
		String result = jedis.get("s4");
		
		System.out.println(result);
		
		//关闭jedis客户端
		jedis.close();
		
		//关闭连接池
		jedispool.close();
			
	}

}

输出

444
4. Jedis连接集群

redis集群搭建详细讲解

4.1 代码
package jedishm19;

import java.util.HashSet;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;


public class JedisClient {
	
	@Test
	public void jedisCluster() {
		//创建jedisCluster
		Set nodes = new HashSet<>();
		nodes.add(new HostAndPort("192.168.188.127", 7001));
		nodes.add(new HostAndPort("192.168.188.127", 7002));
		nodes.add(new HostAndPort("192.168.188.127", 7003));
		nodes.add(new HostAndPort("192.168.188.127", 7004));
		nodes.add(new HostAndPort("192.168.188.127", 7005));
		nodes.add(new HostAndPort("192.168.188.127", 7006));
		
		JedisCluster cluster = new JedisCluster(nodes);
		
		cluster.set("s6", "666");
		
		String result = cluster.get("s6");
		System.out.println(result);
		
		cluster.close();
		
	}

}

输出:

666
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号