我使用的是CentOS-7-x86_64-DVD-1611.iso 下载地址:http://www.centoscn.com/CentosSoft/
虚拟机安装centos安装redis下载以及安装重要步骤配置jedis客户端初步使用centos下iptables的配置jedis连接信息中的异常处理VMware Workstation Pro 这个就不用说了吧?下载安装好就可以了,然后再find到一个秘钥就OK了
下载地址:http://www.centoscn.com/CentosSoft/ 在这里找到你需要的镜像系列,安装按照步骤next next就可以了,中间要设置一个账户给自己使用,后面可能出现使用 mkdir等执行,权限不足的问题,如果出现,请输入一下指令:
visudo使用visodu命令后,打开的窗口与vi界面一致,如果想要为账号增加使用sudo命令的话,可以在 root ALL=(ALL) ALL这行后面加上如下内容:
# 用户账号 登录的主机 = (可以变换的身份) 可以执行的命令 username ALL=(ALL) ALLusername 就是你在安装centos时候,设置的账户名字,后面照着敲下来就行了
用户组说明——wheel有如下内容:(这块不是重点,可以略过,不用配置)
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL ## Same thing without a password ## 用户在使用sudo命令时不用输入密码,后面的ALL可以换为具体的shell命令 # %wheel ALL=(ALL) NOPASSWD: ALL到这里,权限问题就算解决了;以后再打开终端,只要直接输入su ,然后输入密码就可以使用root权限了,密码输入的时候,不会显示,直接输入就可以。
下载redis安装包(如:redis-3.2.9.tar.gz):http://redis.io/download
tar -zxvf redis-3.2.9.tar.gz cd redis-3.2.9 make sudo make installsudo 是获取管理员权限的意思,
$ cd src $ ./redis-servermake完后 redis-3.2.9目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下: 下面启动redis服务.
注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。 启动会出现一个大方块。。。
首先,要将redis.conf redis-cli redis-server 拷贝到/usr/local/redis 文件下备份操作使用
make PREFIX=/usr/local/redis install 项目价格redis-benchmar性能测试工具redis-check-aofAOF文件修复工具redis-check-dumpRDB文件检查工具 快照持久化文件redis-cli命令行客户端redis-sentinel -> redis-serverredis-serverredis服务启动命令 cp redis.conf /usr/local/redis这个文件很重要!!
cd /usr/local/redis回到备份的文件目录
查看文件信息
$ ls文件应该有: bin redis-cli redis.conf redis-server dump.rdb
vim redis.conf然后找到一行代码,每个版本行数是不确定的,vim中查找信息 按 / 然后输入搜索内容
daemonize no 改成 yes
daemonize yes 这是正确的!
然后目前,我们还在redis目录下,执行命令:
./bin/redis-server ./redis.conf这样就启动redis了,并且还可以在终端进行操作~
查看redis是否启动:
ps -ef | grep -i redis ps -A | grep redis也可以,区别我没注意,,,
可以明显的查看到端口信息:6379
关闭redis指令:
kill -9 端口号不推荐,但是我觉得好用。。。
./bin/redis-cli shutdown查看是否关闭 指令在上面
接下来,可以发送一些指令给redis 并获取
./bin/redis-cli指令行会变成:
localhost:6379>ping PONG ##正常 localhost:6379> SET var redis OK localhost:6379> GET var "redis" localhost:6379> DEL var (integer) 1 localhost:6379> GET var (nil)可以使用了~
这里我应该附上一些常用的指令,但是表格不好写,我就没一行一行敲,大家可以自己去搜索一下。。。
我这里用的是eclipse 新建一个maven project ,需要两个重要的jar文件
<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-pool/commons-pool --> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency>@Test public void testDemo1() { try {
Jedis jedis = new Jedis("Linux IP地址", 6379);//192.168.192.128 System.out.println("jedis.isConnected():" + jedis.isConnected()); jedis.set("name", "cuiwjava"); jedis.get("name"); String value = jedis.get("name"); System.out.println(" value :" + value); jedis.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } $ ifconfig可以查看IP地址 ;
在连接客户端之前,还有一步
$ vim /etc/sysconfig/iptablescentos 执行这个命令,会出现找不到iptables这个文件;
关闭并屏蔽firewalld服务 $ systemctl stop firewalld $ systemctl mask firewalld2、安装iptables-services软件包
yum install iptables-services 在引导时启用iptables服务 systemctl start iptables 启动iptables服务 systemctl start iptables 保存防火墙规则 service iptables save 或 /usr/libexec/iptables/iptables.init save后面这条没使用过。。。
管理iptables服务
systemctl [stop|start|restart] iptables接下来可以执行,最初的那条指令了
vim /etc/sysconfig/iptables仔细看将红圈信息复制一行 按 v v 然后 p 复制 这样就多出一行 ;然后修改端口号为:6379 OK 按ESC 然后输入:wq 或者 :q 退出 ; w 是保存 ; q 就是退出的意思;
通过上面配置,接下来可以连接了,也是问题的重点出现地方,我看了几个配置的文档都没有说到这点。。。
当执行jedis 客户端程序的时候,会发现connection is time out
但是配置文件信息,我们都完成了,视频信息中也都是成功;
问题出在redis.config 文件中的bind 127.0.0.1 要注释掉;
注释掉它. 注释掉本机,局域网内的所有计算机都能访问. band localhost 只能本机访问,局域网内计算机不能访问 bind 局域网IP 只能局域网内IP的机器访问, 本地localhost都无法访问.
原文地址:http://www.oschina.net/question/579073_113004?nocache=1496747679031
修改之后,发现,还是不行 ,又查阅得知:
Redis protected-mode 是3.2 之后加入的新特性,在Redis.conf的注释中,我们可以了解到,他的具体作用和启用条件 链接redis 时只能通过本地localhost (127.0.0.1)这个来链接,而不能用网络ip(192.168..)这个链接,如果用网络ip 链接会报错。
解决办法:redis.config中,下面这行代码 设置为no
protected-mode no结合之前的修改信息,总共是三条
# bind 127.0.0.1 注释掉protected-mode no daemonize no #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no 之后,保存文件,然后重新启动redis 服务; ./bin/redis-cli shutdown ./bin/redis-server redis.conf然后再执行客户端代码;