RedisMap<String, String> RECORD_LISTENER_FLAG = new RedisMap<>()这个key的过期时间在哪里看
时间: 2023-11-22 19:55:23 浏览: 83
在 Redis 中,可以通过 `TTL` 命令来查看一个 key 的剩余过期时间,即 `time to live`。如果一个 key 已经过期,或者永久性的存在,那么 `TTL` 将返回 -1 或 -2。具体可以使用以下命令来查看 `RECORD_LISTENER_FLAG` 这个 key 的过期时间:
```
TTL RECORD_LISTENER_FLAG
```
如果返回的结果是正整数,则表示该 key 的剩余过期时间(单位为秒);如果返回的是 -1,则表示该 key 没有设置过期时间;如果返回的是 -2,则表示该 key 已经过期了。
相关问题
没有与这些操作数匹配的 "=" 运算符C/C++(349) listener_str.cpp(12, 23): 操作数类型为: std::shared_ptr<rclcpp::Subscription<std_msgs::msg::String, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<std_msgs::msg::String, std::allocator<void>>>> = std::shared_ptr<rclcpp::Subscription<const std::shared_ptr<std_msgs::msg::String_<std::allocator<void>>> &, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<const std::shared_ptr<std_msgs::msg::String_<std::allocator<void>>> &, std::allocator<void>>>>
这个错误通常是因为尝试将一个类型为`std::shared_ptr<rclcpp::Subscription<const std::shared_ptr<std_msgs::msg::String_<std::allocator<void>>> &, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<const std::shared_ptr<std_msgs::msg::String_<std::allocator<void>>> &, std::allocator<void>>>>`的变量赋值给一个类型为`std::shared_ptr<rclcpp::Subscription<std_msgs::msg::String, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<std_msgs::msg::String, std::allocator<void>>>>`的变量,这两个类型虽然都是指向`rclcpp::Subscription`的`shared_ptr`,但是模板参数不同,无法直接赋值。
解决方法是将两个类型匹配,可以通过使用`std::static_pointer_cast`将其中一个类型转换成另一个类型,例如:
```
std::shared_ptr<rclcpp::Subscription<std_msgs::msg::String, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<std_msgs::msg::String, std::allocator<void>>>> sub;
std::shared_ptr<rclcpp::Subscription<const std::shared_ptr<std_msgs::msg::String_<std::allocator<void>>> &, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<const std::shared_ptr<std_msgs::msg::String_<std::allocator<void>>> &, std::allocator<void>>>> sub_const;
// 将 sub_const 转换成 sub 的类型
sub = std::static_pointer_cast<rclcpp::Subscription<std_msgs::msg::String, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<std_msgs::msg::String, std::allocator<void>>>>(sub_const);
```
修改以下代码,使得对于table的若干对键值输入由文件一键读入:package Practise; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.HashMap; class Listener implements ActionListener{ Window window; Listener(Window window){ this.window = window; } @Override public void actionPerformed(ActionEvent e) { if(window.table.containsKey(window.text1.getText())) { window.text2.setText(window.table.get(window.text1.getText())); } else window.text2.setText("Can not translate!"); } } class Window extends JFrame{ JTextField text1 = new JTextField(10); JTextField text2 = new JTextField(10); JButton button1 = new JButton("Translate"); HashMap<String,String> table; Listener listener = new Listener(this); Window(HashMap<String,String> table){ this.table = table; setBounds(160,100,400,300); add(text1); add(button1); button1.addActionListener(listener); add(text2); setDefaultCloseOperation(3); setLayout(new FlowLayout()); setVisible(true); } } public class practise5 { public static void main(String[] args){ HashMap<String,String> table = new HashMap<String, String>(); table.put("one","1"); table.put("two","2"); table.put("three","3"); Window window = new Window(table); } }
以下是修改后的代码:
```java
package Practise;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Scanner;
class Listener implements ActionListener {
Window window;
Listener(Window window) {
this.window = window;
}
@Override
public void actionPerformed(ActionEvent e) {
if (window.table.containsKey(window.text1.getText())) {
window.text2.setText(window.table.get(window.text1.getText()));
} else
window.text2.setText("Can not translate!");
}
}
class Window extends JFrame {
JTextField text1 = new JTextField(10);
JTextField text2 = new JTextField(10);
JButton button1 = new JButton("Translate");
HashMap<String, String> table;
Listener listener = new Listener(this);
Window(HashMap<String, String> table) {
this.table = table;
setBounds(160, 100, 400, 300);
add(text1);
add(button1);
button1.addActionListener(listener);
add(text2);
setDefaultCloseOperation(3);
setLayout(new FlowLayout());
setVisible(true);
}
public void readFrom(String fileName) throws FileNotFoundException {
Scanner scanner = new Scanner(new File(fileName));
while (scanner.hasNextLine()) {
String[] pair = scanner.nextLine().split(",");
if (pair.length == 2) {
table.put(pair[0], pair[1]);
}
}
scanner.close();
}
}
public class Practise5 {
public static void main(String[] args) {
HashMap<String, String> table = new HashMap<String, String>();
try {
Window window = new Window(table);
window.readFrom("input.txt");
} catch (FileNotFoundException e) {
System.out.println("File not found!");
}
}
}
```
修改后的代码中,我们添加了一个 `readFrom()` 方法,该方法接受一个文件名作为输入,从文件中读取键值对并将其存储在 `HashMap` 中。
在 `main()` 方法中,我们首先创建了一个空的 `HashMap`,然后创建了一个 `Window` 对象,并调用 `readFrom()` 方法从文件中读取键值对并存储到 `HashMap` 中。最终,我们将 `HashMap` 传递给 `Window` 对象,并显示窗口。
阅读全文