Java客户端 - Jedis
- Jedis 是 Java 语言开发的 Redis 客户端工具包。
- Jedis 只是对 Redis 命令的封装,掌握 Redis 命令便可轻易上手。
Redis 前期准备:
- 进入 redis.conf
- 将 protected-mode 保护模式设为 no
- 将 bind 127.0.0.1 改为 bind 0.0.0.0(远程服务器的地址,也就是自己电脑的 ip,四个0代表所有)
- 开放防火墙
- 为了安全着想,对指定 ip 开放:firewall-cmd --zone=public --permanent --add-rich-rule="rule family=“ipv4” source address=“192.168.65.1” port protocol=“tcp” port=“6379” accept "
- 或者 对所有ip开放也行(不建议):firewall-cmd --zone=public --permanent --add-port=6379/tcp
- 重新加载配置:firewall-cmd --reload
Jedis 类
Jedis github:https://github.com/redis/jedis
- 引入依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.0</version>
</dependency>
-
Jedis类 将 Redis 客户端的命令 封装为 一个一个同名的方法。
-
Redis 对于 中文和特殊符号 使用的 Unicode 编码 来保存,最大程度上避免中文乱码问题。
- 因此使用 java 添加的 中文是Unicod编码,但使用 java 读取的时候会自动转换回中文。
-
new Jedis(String host):传入 ip 地址,默认使用 6379 端口,当然也可以手动指定端口
-
select(int index):选择数据库的命令。
-
close():关闭连接。
-
mset(String… 或 byte[]…):批量添加
如:mset (new string[ ] { “title”, “婴幼儿奶粉”,“num” , “20” }); -
Hash 类型:对应于 Map。
-
List 类型:对应于 String[]。lrange() 返回值为 List
Jedis 连接池
Jedis 本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此推荐大家使用 Jedis 连接池代替 Jedis 的直连方式。
配置Jedis连接池参数:
public class JedisConnectionFactory {
private static final JedisPool jedisPool;
static {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 最大连接
jedisPoolConfig.setMaxTotal(8);
// 最大空闲连接
jedisPoolConfig.setMaxIdle(8);
// 最小空闲连接
jedisPoolConfig.setMinIdle(0);
// 设置最长等待时间,ms
jedisPoolConfig.setMaxWaitMillis(200);
// 创建连接池对象,参数:连接池配置、服务端ip、服务端端口、超时时间、密码
jedisPool = new JedisPool(jedisPoolConfig, "192.168.65.128", 6379, 1000, "123456");
}
// 获取jedis对象
public static Jedis getJedis() {
return jedisPool.getResource();
}
}
- Redis 是在内存中读取,而 mysql 等是在 硬盘中读取,因此 Redis 的速度能快上 数十倍。
- 但不利于存取过多的数据。
- 可以将 Java Bean 序列化为 json字符串 保存在 Redis中。