redis在linux中安装步骤:
1.安装准备环境:安装gcc
yum install gcc-c++
2.下载redis安装包
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
3.解压redis
tar xzf redis-5.0.0.tar.gz
4.修改配置文件redis.conf
daemonize no改为daemonize yes
5.进入到src目录下启动redis
./redis-server ../redis.conf
6.查看redis是否启动成功
ps -ef | grep -i redis
7.停止redis命令
./redis-cli shutdown
8.启动客户端
./redis-cli
8.redis的简单使用
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
java远程连接redis
- 我们要在
Java
平台上使用redis
,肯定需要Jedis
这个客户端。首先在pom
文件中引入Jedis
的依赖
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
- 普通方式创建Jedis对象。
package com.example.redis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class JedisDemo {
@Test
public void methodOne() {
Jedis jedis = new Jedis("192.168.10.128", 6379);
jedis.set("name", "wangwu");
String value = jedis.get("name");
System.out.println(value);
jedis.close();
}
}
- 通过线程安全的连接池来创建Jedis对象。
@Test
public void methodTwo() {
//获得连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
//设置最大连接数
config.setMaxTotal(30);
//设置最大空闲连接数
config.setMaxIdle(10);
//获得连接池
JedisPool jedisPool = new JedisPool(config, "192.168.10.128", 6379);
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
String value = jedis.get("name");
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
jedisPool.close();
}
}
在测试的时候会报错
报错①
这个错误是因为我们没有在防火墙中开始6379端口,我的虚拟机为centos7版本,开始方式如下
firewall-cmd --zone=public --add-port=6379/tcp --permanent
开启端口之后,重启防火墙
firewall-cmd --reload
这个时候测试java可能还会报错,链接被拒绝
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
at redis.clients.jedis.Connection.connect(Connection.java:154)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:83)
at redis.clients.jedis.Connection.sendCommand(Connection.java:93)
at redis.clients.jedis.BinaryClient.set(BinaryClient.java:100)
at redis.clients.jedis.Client.set(Client.java:29)
at redis.clients.jedis.Jedis.set(Jedis.java:65)
at redis.Demo1.main(Demo1.java:10)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.Connection.connect(Connection.java:148)
... 6 more
可能的原因:
redis服务器的redis.conf配置中bind 127.0.0.1
应该改为:bind 0.0.0.0
重启redis服务,再使用Java连接即可。
防火墙修改参考博客:https://blog.csdn.net/u011846257/article/details/54707864
redis入门参考:https://www.jianshu.com/p/27fa1a1d46c9