在linux上安装redis,在window上使用redisManager远程连接
1. 安装准备:
安装包:redis-4.0.14.tar.gz
下载地址:https://redis.io/download
reids命令参考:http://doc.redisfans.com
2. 安装:
上传,解压,提取和编译redis
[[email protected] software]# tar -zxvf redis-4.0.14.tar.gz -C /opt/module/
[[email protected] redis-4.0.14]# make //编译
[[email protected] redis-4.0.14]# make install PREFIX=/opt/module/redis //安装到指定的路径下
可能出现的问题:
1.make之前出现该错误
make[1]: *** [adlist.o] 错误 127
原因:因为Redis是C实现的,需要gcc来进行编译,所以原因是系统未安装gcc
解决办法:yun install gcc-c++ -y
2. make时出现该错误:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
原因:关于分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。
解决办法:make MALLOC=libc
3. make install时出现该错误:
make: *** 没有规则可以创建目标“install”。 停止。
原因:没有在正确的路径下执行
解决:在解压后的文件路径下,make之后在执行该命令
3. 测试:
在安装成功之后进入/opt/module/redis目录下,只有一个bin目录进入(redis.conf开始并没有)
开启redis服务端(默认前台启动)
./redis-server
这样一直处于监听状态,ctrl+c就退出了,下面我们改为启动守护进程。
后台启动
将解压后的redis中的redis.conf复制一份到安装目录
[[email protected] redis-4.0.14]# cp redis.conf /opt/module/redis/bin/
完成之后,回到/opt/module/redis/bin目录下(也就是之前说的redis.conf)
进入redis.conf,修改下面的配置
然后再次启动redis服务端,就会启动了守护进程,在后台运行。
./redis-server redis.conf //需要手动指定加载的配置文件,并查看是否成功
启动客户端测试:
./redis.cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> get name
"hello"
4. redisDesktopManager连接问题
软件下载地址:https://redisdesktop.com/download
安装完成之后,在window上使用redisDesktopManager连接在Linux上安装好的redis,但是就是连接不上,问题可能有下列几种:
- 不允许公网连接
- 防火墙禁止了redis端口
- Redis.conf 下 bind127.0.0.1要注释掉
- Redis.conf 下 requirepass foobared配置密码
问题1解决方案:
设置redis允许远程登录
为了redis的安全性,redis默认是不允许公网连接的。
问题2解决方案:
- 1vim /etc/sysconfig/iptables
- 在这个文件中仿照22端口,将redis需要的6379端口填写进去:-A INPUT -p tcp-m state --state NEW -m tcp --dport 6379 -j ACCEPT(注意:这段代码需要放置在22端口的下面,否则无法成功)
- 重启防火墙: serviceiptables restart
问题3解决方案:
问题4解决方案:
连接成功:
5 JedisAPI
导入下面的依赖
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.2</version> </dependency>
Jedis jedis = new Jedis("192.168.1.104",6379); //创建jedis对象,传入连接的主机名以及端口便可直接调用api操作 //set增、改 //String result = jedis.set("address", "朝阳"); String result = jedis.set("address", "海淀"); //get查 String result1 = jedis.get("address"); //del删 String result2 = jedis.del("address"); System.out.println(result); System.out.println(result1); System.out.println(result2);