欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis安装配置jedis客户端访问redis相关问题总结

程序员文章站 2022-05-17 22:40:36
...

redis安装配置jedis客户端访问redis相关问题总结

我使用的是CentOS-7-x86_64-DVD-1611.iso 下载地址:http://www.centoscn.com/CentosSoft/

  • 虚拟机安装
  • centos安装
  • redis下载以及安装重要步骤配置
  • jedis客户端初步使用
  • centos下iptables的配置
  • jedis连接信息中的异常处理

虚拟机安装

VMware Workstation Pro 这个就不用说了吧?下载安装好就可以了,然后再find到一个秘钥就OK了

centos安装

下载地址:http://www.centoscn.com/CentosSoft/
在这里找到你需要的镜像系列,安装按照步骤next next就可以了,中间要设置一个账户给自己使用,后面可能出现使用 mkdir等执行,权限不足的问题,如果出现,请输入一下指令:

visudo

使用visodu命令后,打开的窗口与vi界面一致,如果想要为账号增加使用sudo命令的话,可以在 root ALL=(ALL) ALL这行后面加上如下内容:

# 用户账号 登录的主机 = (可以变换的身份) 可以执行的命令
username ALL=(ALL) ALL

username 就是你在安装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安装包(如: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 install

sudo 是获取管理员权限的意思,

$ cd src
$ ./redis-server

make完后 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-aof AOF文件修复工具
redis-check-dump RDB文件检查工具 快照持久化文件
redis-cli 命令行客户端
redis-sentinel -> redis-server
redis-server redis服务启动命令
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)

可以使用了~

这里我应该附上一些常用的指令,但是表格不好写,我就没一行一行敲,大家可以自己去搜索一下。。。

jedis客户端初步使用

我这里用的是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地址 ;

centos下iptables的配置

在连接客户端之前,还有一步

$ vim  /etc/sysconfig/iptables

centos 执行这个命令,会出现找不到iptables这个文件;

  1. 关闭并屏蔽firewalld服务
$ systemctl stop firewalld 
$ systemctl mask firewalld

2、安装iptables-services软件包

yum install iptables-services
  1. 在引导时启用iptables服务
systemctl start iptables
  1. 启动iptables服务
systemctl start iptables
  1. 保存防火墙规则
service iptables save 或 /usr/libexec/iptables/iptables.init save

后面这条没使用过。。。

管理iptables服务

systemctl [stop|start|restart] iptables

接下来可以执行,最初的那条指令了

vim /etc/sysconfig/iptables

redis安装配置jedis客户端访问redis相关问题总结

仔细看将红圈信息复制一行 按 v v 然后 p 复制 这样就多出一行 ;然后修改端口号为:6379 OK 按ESC 然后输入:wq 或者 :q 退出 ; w 是保存 ; q 就是退出的意思;

通过上面配置,接下来可以连接了,也是问题的重点出现地方,我看了几个配置的文档都没有说到这点。。。

jedis连接信息中的异常处理

当执行jedis 客户端程序的时候,会发现connection is time out

但是配置文件信息,我们都完成了,视频信息中也都是成功;

问题出在redis.config 文件中的bind 127.0.0.1 要注释掉;

bind localhost

注释掉它.
注释掉本机,局域网内的所有计算机都能访问.
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 

结合之前的修改信息,总共是三条

  1. # bind 127.0.0.1 注释掉
  2. protected-mode no
  3. daemonize no #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no
    之后,保存文件,然后重新启动redis 服务;
./bin/redis-cli shutdown
./bin/redis-server redis.conf

然后再执行客户端代码;

redis安装配置jedis客户端访问redis相关问题总结