Redis的Java 客户端

wxvirus2023年8月22日
大约 2 分钟

Redis 的 Java 客户端

redis 客户端

redis 支持多种语言的客户端

redis可以通过自带的redis-cli进行连接

./redis-cli -h ip -p port -a 密码

# 案例
./redis-cli -h 192.168.0.100 -p 6379 -a 123456

# 退出
quit

如果就是连接的本机服务,以及端口没有改变,-h-p都是可以省略的,最终就只需要输入密码即可,如果没有设置密码,那也不需要了,即:

./redis-cli -a 123456

常用命令

设置插入一条数据,默认插入0号库里

127.0.0.1:6379> set username zhangsan

通过get来获取数据

127.0.0.1:6379> get username
"zhangsan"

选择不同的库

127.0.0.1:6379> select 2

存入层级存储的数据用来替换关系数据库中“表”的概念: 设置某项目中用户主键为 1 的为“zhangsan”

127.0.0.1:6379> set xxx:users:1 zhangsan

获取的时候,怎么设置的就怎么获取,如果在桌面客户端里查看会有一个很明显的层级关系

127.0.0.1:6379> get xxx:users:1
"zhangsan"

查询当前所在的库有多少key

127.0.0.1:6379> keys *

info命令来查看一些信息,可以查看当前 CPU 使用率,或者查看主从模式和集群,也可以直接查看一个详细的info

127.0.0.1:6379> info [section]

清除所有的key注意:一般实际项目中谨慎使用

127.0.0.1:6379> FLUSHALL

java 客户端

https://redis.io/resources/clients/#javaopen in new window

比较受欢迎的是JedisLettuce

  • Jedis在实现上是直接连接redis server,如果在多线程环境下是非线程安全的,这个时候只有使用连接池,为每个Jedis实例增加物理连接
  • Lettuce的连接是基于Netty的,连接实例可以在多个线程并发访问,因为StatefulRdisConnection是线程安全的,锁一个连接实例就可以满足多线程环境下的并发访问,这个也是可伸缩的设计,一个连接实例不够的情况下也可以按需增加实例连接。
  • SpringBoot Dta Redis 1.x之前默认使用的是Jedis,但目前最新版的修改成了Lettuce
  • 总得来说,Jedis性能会优于Lettuce,因为他是直接连接redis server

Jedis 客户端

maven 库open in new window

使用IDEA创建一个简单的maven项目引入对应的jedis依赖

Loading...