20160817_Redis配置操作

ZC: 主要是 做一些配置,使得 java程序能够访问到 redis服务器,主要内容为:
ZC:  ①、redis服务端服务 重启的命令
ZC:  ②、取消绑定 本地IP的配置,使得 所有本网段局域网机器都能访问 redis服务器 (非本网段局域网/公网 机器 如何访问,还得查资料+测试)
ZC:  ③、增加 redis服务端 验证密码
ZC:  ④、一段简单的 java访问 redis服务器 的代码

1、服务 重启

在 "/home/redis-3.2.3/README.md"中,搜到一句话:


You'll be able to stop and start Redis using the script named
`/etc/init.d/redis_<portnumber>`, for instance `/etc/init.d/redis_6379`.

看了一下里面的shell脚本,一般操作行为为:"/etc/init.d/redis_6379"后面跟" start/stop/restart"

2、

http://jiangwenfeng762.iteye.com/blog/1280700 中说到“jedis是Redis官网推荐的java客户端实现。”

 2.1、

  java使用 jedis 来连接 redis,但是出错:“Connection refused: connect”

搜到 http://www.oschina.net/question/579073_113004?sort=time 说


bind的问题. 把Redis的配置文件redis.conf里
#bind localhost
注释掉它.
注释掉本机,局域网内的所有计算机都能访问.

band localhost :只能本机访问,局域网内计算机不能访问
bind 局域网IP :只能局域网内IP的机器访问, 本地localhost都无法访问.

 2.2、注释掉“#bind 127.0.0.1”,然后重启之后。再次 java程序连接,出现新问题:

  “DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.”

  ZC: 网上查到,取消了 bind本机 之后,需要有密码才能登录,于是设置密码:

[root@localhost src]# redis-cli
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> exit
[root@localhost src]#

    ZC: 设置密码后,无需 重启服务

  ZC: 上面这样,在 redis客户端设置验证密码,在redis服务器重启之后,requirepass机制 就没有了。要想 重启之后 requirepass机制 依旧存在,就需要修改配置文件(这里,安装的时候配置的是"/etc/redis/6379.conf"),在配置文件中有 requirepass相关的部分(gedit搜索"requirepass"),做好设置即可。(个人感觉 需要重启redis服务程序,未测试...)

  2.3、Jedis 连接 Redis 的测试代码:

import redis.clients.jedis.*;

public class TredisZ
{
public static void main(String[] args)
{
//连接本地的 Redis 服务
Jedis jedis = new Jedis("192.168.1.235", 6379);
String str = jedis.auth("123456");
System.out.println("Jedis.auth : "+str);
System.out.println("Connection to server sucessfully");
//查看服务是否运行
System.out.println("Server is running: "+jedis.ping());
//jedis.close();
}
}

    控制台输出:

Jedis.auth : OK
Connection to server sucessfully
Server is running: PONG

3、另一个 测试代码:

  3.1、

import redis.clients.jedis.*;
//import org.apache.commons.pool.impl.GenericObjectPool.Config; public class TredisZ
{
public static void main(String[] args)
{
String strRedisAddress = "192.168.1.235"; int iRedisPort = 6379;
int iRedisTimeout = 2000; JedisPoolConfig poolCfg = new JedisPoolConfig();
JedisPool pool = new JedisPool(
poolCfg,
strRedisAddress,
iRedisPort,
iRedisTimeout, "123456"); Jedis jedis = pool.getResource();
//jedis.set("test123", "lulu");
System.out.println("Server is running: "+jedis.ping()); pool.returnResource(jedis);
}
}

  3.2、

JedisPoolConfig 依赖于 commons-pool

commons-pool 的

 官网为:

  http://commons.apache.org/proper/commons-pool/

 下载页面为:

  http://commons.apache.org/proper/commons-pool/download_pool.cgi

 我下了2个 :commons-pool-1.6-bin.tar.gz 和 commons-pool2-2.4.2-bin.tar.gz

4、

5、

上一篇:react生命周期,中间件、性能优化、数据传递、mixin的使用


下一篇:MySQL两个最常用的存储引擎,MyISAM和InnoDB