(一)添加依赖
redis服务器在官网中公开了自己使用的协议--RESP,所以我们可以使用这个协议来访问redis服务器,但是如果我们要自己实现库,那肯定是非常麻烦的,所以我们可以使用网上的库,我们直接调用接口,不需要关注redis协议的细节,我们这里使用的是jedis
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.2</version>
</dependency>
只需要在pom文件中添加这个依赖
但是还有一个问题需要注意,我个人的redis是在windows环境上的所以不涉及到这个问题,如果我们不是windows上的redis服务器,那我们自己的windows电脑就无法直接通过本机ip来直接访问redis服务器了
所以我们就需要通过云服务器的外网ip来访问linux服务器
但是这样还远远不够,因为我们云服务器的默认端口6379是被防火墙给隔离起来的,我们是不可以直接访问到的,这也是为了保证我们的信息安全,因为要保证信息安全,所以我们也不可以把防火墙关闭
那我们不可以关闭防火墙开放redis关口,又想自己访问,这不是既要又要吗,这能行?
那这里有两种方法可以帮我们实现这个既要又要的需求:
1.你可以跟我一样,把redis服务器也运行在本机上,这样我们就可以使用本机ip直接访问
2.配置ssh端口转发,把云服务器的redis端口,映射到本地主机上(其实思想上还是把redis服务器运行在同一环境)
我们这里简单说一下ssh的端口转发功能,简单来说就是通过ssh的一个端口,来传递其他端口的数据
本身我们这里是需要通过windows主机,来访问云服务器的6379端口的,于是我们就构造一个特殊的ssh数据包,把要访问6379端口的请求,放到数据报里,此时我们的数据报就变成了这样
然后这个数据报就会通过ssh端口发给服务器,服务器中也有ssh服务器程序,他通过解析我们发送的数据包,然后把数据报就交给了6379端口
而同时一个服务器上,ssh可能需要给多个端口传递数据,这时候我们为了区分不同端口,就会把服务器的端口在本地用另一个端口来表示(只需要我们配置一下)
然后进行连接,端口转发就生效了
此时如果还不能在windows上执行,就可能使我们最开始安装redis服务器时,我们的一些设置有问题,比如要配置绑定的ip这里默认是127.0.0.1,只能本机访问,不可以跨主机,要进行更改,也可能是我们开启了保护模式默认是yes,如果开启了也不可以跨主机访问
此时就可以正确的在windows下使用redis了
(二)通过jedis进行redis的一些通用命令
我们在这里只会介绍一些有代表性的命令,因为这些命令和我们在redis客户端中讲的使用方法是一样的。
1)通用命令
1.set/get
设置和获取数据
首先我们的启动类长这个样子
这样我们就建立好连接了
2.exist/del
判断数据是否存在和删除数据
3.keys
查询key对应的value(注意这里的返回值为set类型)
4.expire/ttl
设置过期时间和查询过期时间(单位为s)
5.type
获取key对应的value
2)字符串操作
1.mget/mset
设置或者获取字符串
2.append
在指定的key对应的value加上字符串
3.getrange/setrange
获取指定区间字符串和设置指定区间字符串(都是闭区间)
4.setnx
如果key没有value的时候才可以被成功设置
5.psetex/pttl
对value是字符串类型的key设置过期时间和查询过期时间
6.incr/decr
7.incrby/decrby
3)列表操作
1.lpush/lpop
2.rpush/rpop
3.lrange
4.brpop/blpop
返回值list是一个二元组[0]为key[1]为value,超时时间设为0表示死等
5.lindex
6.lset
4)哈希表操作
1.hset/hget
2.hexists/hdel
3.hkeys/hvals
4.hincrby/hincrbyfloat
5)集合操作
1.sadd/smembers
2.srem/sismember
3.scard
4.sinter/sinterstore
6)有序集合
1.zadd/zrange
2.zrem/zcard
3.zcount
4.zpopmax/zpopmin
我们注意这里面有一个新的类tuple,是我们jedis中的一个新类,本质上是个二元组,在这里,里面存储的是member和score