redis java 写一个聊天工具
时间: 2023-07-01 12:05:33 浏览: 54
下面是一个简单的 Redis Java 聊天工具的示例代码,它使用 Redis 的发布/订阅功能实现消息传递:
```java
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
import java.util.Scanner;
public class ChatTool {
private static final String CHANNEL = "chat_channel";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的名字:");
String name = scanner.nextLine();
Jedis jedis = new Jedis("localhost");
JedisPubSub pubSub = new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
if (!name.equals(message.split(":")[0])) {
System.out.println(message);
}
}
};
new Thread(() -> jedis.subscribe(pubSub, CHANNEL)).start();
while (true) {
System.out.print("请输入消息(输入 exit 退出):");
String msg = scanner.nextLine();
if ("exit".equalsIgnoreCase(msg)) {
jedis.unsubscribe(CHANNEL);
jedis.close();
System.exit(0);
}
jedis.publish(CHANNEL, name + ": " + msg);
}
}
}
```
这个聊天工具首先要求用户输入其名称,然后使用 `Jedis` 连接到 Redis 服务器,创建一个订阅器 `JedisPubSub` 并在新线程中调用 `subscribe` 方法以订阅 `chat_channel` 频道。在主线程中,它从控制台读取用户输入的消息并将其发布到 `chat_channel` 频道中。同时,它通过 `JedisPubSub` 从订阅器读取消息并将其显示到控制台上,但不会显示属于自己的消息。当用户输入 `exit` 时,程序会取消订阅频道并关闭 Redis 连接。