在前面的学习中,只是学习了各种redis的操作,都是在redis命令行客户端操作的,手动执行的,更多的时候就是使用redis的api(),进一步操作redis程序。
在java中实现的redis客户端有很多,接下来我们将使用jedis,在maven仓库下载jedis。
在depency这里引入依赖。并且需要修改外网ip连接到云服务器并且开启6379端口。
不能开放6379端口因为容易被黑客入侵,所以我们需要配置ssh端口转发,把云服务器的redis端口映射到本地主机。
ssh端口转发的配置
相当于通过ssh的22来传递其他端口的数据,比如本身想要访问6379,我们就构造一个ssh的数据报,就要把访问redis请求放在数据报中,通过比较安全的22端口交给云服务器,服务器的程序就能解析该数据报然后交给6379端口。
但是这时候我们会在本地创建一个端口比如8888,映射6379这个端口,类似于在本地设立一个办事处,我们访问8888也就是访问Linux的6379(访问本地就是访问远程窗口)。
话不多说我们进行一个简单的配置,就可以把本地端口当成远程用。
打开属性,点击添加,在redis中进行如下配置,最后点击连接。
最后在cmd中输入netstat -ano | findstr 8888,查看是否连接好了。
接下来通过我们自己的127.0.0.1:8888就能操作redis了。
通过下列代码连接redis。
JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");
接着再从池子中获取连接,连接用完之后要记得关闭(close),此处的释放是把redis的连接放回池子中。
try(Jedis jedis=jedisPool.getResource()){
//接下来的命令就对应到redis的客户端操作了
System.out.println(jedis.ping());
}
在这里我们之前配置好了redis.conf的配置项。
get和set方法:
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.params.SetParams;
public class RedisDemo {
public static void test(Jedis jedis){
jedis.flushAll();
jedis.set("key","111");
jedis.set("key1","222");
SetParams setParams=new SetParams();
setParams.ex(10);
setParams.nx();
jedis.set("key3","333",setParams);
String key3 = jedis.get("key3");
System.out.println(key3);
}
public static void main(String[] args) {
//连接redis服务器上面,redis连接池。
JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");
try(Jedis jedis=