Redis如何通过本机客户端访问远程服务器段

Redis如何通过本机客户端访问远程服务器段,第1张

1、Redis默认端口号为127001,端口号默认为:6379。
2、假如本机访问远程IP为132111444的计算机,则首先要在已经安装了Redis的远程计算机上打开其服务器,redisserverexe

3、接下来在本机运行rediscliexe,也可以通过命令行实现:输入-h 远程计算机IP -p 6379即可连接:

4、接下来如果想用自己写的客户端什么的连接远程Redis数据库也只需要输入远程计算机的IP就可以了。

1、在集群内部,使用iptable允许哪些集群内部的服务器可以访问。
2、在集群外部,有时候需要通过客户端工具来管理redis,这时候需要在集群内部架设,并且该的服务器能够允许访问redis服务器,这样,公网上的主机可以使用该,通过redis客户端管理redis。

1、安装编译工具2、安装tcl组件包(安装Redis需要tcl支持)3、安装Redis4、设置redis开机启动 5、设置redis配置文件参数6、测试redis数据库7、通过php程序连接redis数据库 #php必须先安装Redis扩展至此,Linux下Redis服务器安装配置完成。

方法/步骤
1、打开已经安装成功的Xshell,点击左上角新建按钮,打开新建会话属性对话框
2、连接信息验证,输入redis服务器的主机IP,端口号,名称(自定义,如test)
3、用户身份验证,方法:Password,输入连接redis服务器的用户名和密码;点击确定按钮
4、点击会话对话框中的连接按钮
5、连接成功状态
6、通过命令
redis-cli
-a
test123;连接redis数据库,其中test123数据库是名称。到这里为止,您已经通过Xshell能完整的 *** 作redis了,您会了吗?

<php
//第一步:实例化redis对象
$redis = new redis();
//第二步:php客户端设置的ip及端口
$redis->connect("127001","6379");
//第三部:配置连接密码 检测redis服务器连接状态
//连接失败直接结束 并输出
$auth = $redis->auth('zhenai') or die("redis 服务器连接失败");
// var_dump($auth);连接成功 返回 true 反之 返回false
//第四步 可用可不用
echo $connect_status=$redis->ping();
if($connect_status==="+PONG")
{
echo "redis 服务器连接成功";
}
//就是如此简单

注释掉 bind 127001 这一行(在前面添加一个 # 就是注释)。

重启 redis 服务。

注意: redis 的配置文件位置不是100%一样,有可能你的服务器的 redisconfig 文件和我的位置不一样,请注意甄别。

如果还不行,检查防火墙设置,看看是否有禁止 6379 端口或者限制远程 ip 访问。 如果是购买的云服务器 ,检查 安全组 是否放行 6379 端口(例如:如果你购买的是阿里云的服务器,则登录阿里云的控制台,查看redis所在服务器的安全组设置)。

将命令中的 88888888 改成你的 ip 地址,将 6379 改成你的 redis 的端口(默认端口就是 6379 ),将 password 改成你的 redis 授权密码。

第一:非集群状态下
非集群状态下用Jedis获取Redis连接,得到Jedis对象即可,一共有两种:
1利用Jedis构造器,仅限用于测试,在实际项目中肯定是用JedisPool。
Jedis(String host);
Jedis(String host , int port);
2利用JedisPool
主要是利用Jedis jedis=jedisPoolgetResource();
JedisPool有N多个构造器,常用的构造器参数有GenericObjectPoolConfig poolConfig,String host,int port,int timeout,String password,创建GenericObjectPoolConfig对象时我们一般用其子类JedisPoolConfig (redisclientsjedisJedisPoolConfig),timeout是连接redis服务器的超时时间,以毫秒为单位,一般设置为0,如果不设为0,则不可设置太小,如果设成1、2,那么可能因为网络原因在1毫秒、2毫秒之内没有连上服务器而报错。见下例:
[java] view plain copy
public static void main(String[] args) {
JedisPoolConfig poolConfig = new JedisPoolConfig();
// 最大连接数
poolConfigsetMaxTotal(2);
// 最大空闲数
poolConfigsetMaxIdle(2);
// 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
// Could not get a resource from the pool
poolConfigsetMaxWaitMillis(1000);
JedisPool pool = new JedisPool(poolConfig, "19216883128", 6379, 0, "123");
Jedis jedis = null;
try {
for (int i = 0; i < 5; i++) {
jedis = poolgetResource();
jedisset("foo" + i, "bar" + i);
Systemoutprintln("第" + (i + 1) + "个连接, 得到的值为" + jedisget("foo" + i));
// 用完一定要释放连接
jedisclose();
}
} finally {
poolclose();
}
}
如上,创建出一个JedisPool对象,然后调用其getResource()方法获取redis连接即可,之后就可以调用Jedis API *** 作redis了。jedis连接用完要释放即close,如果不close,则产生的连接会越来越多,当达到了最大连接数,再想获得连接,就会等待,当超过了最大等待时间后就会报异常。
第二:集群状态下
集群状态下用Jedis获取redis连接,是得到JedisCluster对象,之后对redis进行 *** 作都是用此对象的方法进行的:
[java] view plain copy
public static void main(String[] args) {
JedisPoolConfig poolConfig = new JedisPoolConfig();
// 最大连接数
poolConfigsetMaxTotal(1);
// 最大空闲数
poolConfigsetMaxIdle(1);
// 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
// Could not get a resource from the pool
poolConfigsetMaxWaitMillis(1000);
Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
nodesadd(new HostAndPort("19216883128", 6379));
nodesadd(new HostAndPort("19216883128", 6380));
nodesadd(new HostAndPort("19216883128", 6381));
nodesadd(new HostAndPort("19216883128", 6382));
nodesadd(new HostAndPort("19216883128", 6383));
nodesadd(new HostAndPort("19216883128", 6384));
JedisCluster cluster = new JedisCluster(nodes, poolConfig);
String name = clusterget("name");
Systemoutprintln(name);
clusterset("age", "18");
Systemoutprintln(clusterget("age"));
try {
clusterclose();
} catch (IOException e) {
eprintStackTrace();
}
}
用集群时,好像没有办法设置集群的参数,比如最大连接数,虽然在创建JedisCluster 对象时传了JedisPoolConfig对象进去,但是JedisPoolConfig对象中的设置是不生效的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12612543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存