民工哥死磕Redis教程(十五): 与Java\Php\Springboot 等应用的连接与使用
前言
我们之前对Redis的学习都是在命令行窗口,那么如何使用Java来对Redis进行操作呢?官方对于Java连接Redis的开发工具推荐了Jedis,通过Jedis同样可以实现对Redis的各种操作。本篇文章会介绍基于Linux上的Redis的Java连接操作。
准备步骤
修改配置文件redis.conf:
(1)注释以下属性,因为我们是需要进行远程连接的:
#bind:127.0.0.1
(2)将protected-mode 设置为no
protected-mode no
(3)设置为允许后台连接
daemonize yes
注意:
在远程服务器进行连接需要确保将以下三个步骤都完成:
- 设置服务器的安全组开放6379端口
- 防火墙开放端口:
firewall-cmd --zone=public --add-port=6379/tcp --permanet
- 重启防火墙:
systemctl restart firewalld.service
Jedis连接Redis
创建一个Maven项目,并导入以下依赖:
redis.clients
jedis
3.2.0
com.alibaba
fastjson
1.2.62
测试连接:
package com.yixin;
import redis.clients.jedis.Jedis;
public class RedisTest {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("服务器地址", 6379);
String response = jedis.ping();
System.out.println(response); // PONG
}
}
输出结果:
看到PONG说明我们成功连接上了我们服务器上的Redis了!
基本操作
操作String数据类型
package com.yixin;
import redis.clients.jedis.Jedis;
import java.util.Set;
public class Redis_String {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("服务器地址", 6379);
String response = jedis.ping();
System.out.println(response); // PONG
//删除当前选择数据库中的所有key
System.out.println("删除当前选择数据库中的所有key:"+jedis.flushDB());
//Spring实例
//设置 redis 字符串数据
//新增的键值对
jedis.set("name", "yixin");
// 获取存储的数据并输出
System.out.println("redis 存储的字符串为: "+ jedis.get("name"));
//判断某个键是否存在
System.out.println("判断某个键是否存在:"+jedis.exists("name"));
//系统中所有的键
Set keys = jedis.keys("*");
System.out.println(keys);
//按索引查询
System.out.println("按索引查询:"+jedis.select(0));
//查看键name所存储的值的类型
System.out.println("查看键name所存储的值的类型:"+jedis.type("name"));
// 随机返回key空间的一个
System.out.println("随机返回key空间的一个:"+jedis.randomKey());
//重命名key
System.out.println("重命名key:"+jedis.rename("name","username"));
System.out.println("取出改后的name:"+jedis.get("username"));
//删除键username
System.out.println("删除键username:"+jedis.del("username"));
//删除当前选择数据库中的所有key
System.out.println("删除当前选择数据库中的所有key:"+jedis.flushDB());
//查看当前数据库中key的数目
System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
//删除数据库中的所有key
System.out.println("删除所有数据库中的所有key:"+jedis.flushAll());
}
}
操作List数据类型
package com.yixin;
import redis.clients.jedis.Jedis;
import java.util.List;
public class Redis_List {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("服务器地址", 6379);
String response = jedis.ping();
System.out.println(response); // PONG
System.out.println("删除当前选择数据库中的所有key:"+jedis.flushDB());
//List实例
//存储数据到列表中
jedis.lpush("list", "num1");
jedis.lpush("list", "num2");
jedis.lpush("list", "num3");
// 获取存储的数据并输出
List list = jedis.lrange("list", 0 ,-1);
for(int i=0; i