Jedis Redis 模糊匹配 取得 key 列表

往Redis中初始化几条测试数据:

china:beijing
china:shandong:heze
china:shandong:jinan



 

测试代码:

 

Java代码 
  1. Jedis jedis = new Jedis("10.110.20.152"6379);  
  2.         Set<String> set = jedis.keys("china:shandong*");  
  3.         for (String key : set) {  
  4.             System.out.println(key);  
  5.         }  

 

 输出结果:

china:shandong:heze

china:shandong:jinan

 

测试代码:

Java代码 
  1. Jedis jedis = new Jedis("10.110.20.152"6379);  
  2.         Set<String> set = jedis.keys("china:beijing?");  
  3.         for (String key : set) {  
  4.             System.out.println(key);  
  5.         }  

 输出结果:

 

测试代码:

Java代码 
  1. Jedis jedis = new Jedis("10.110.20.152"6379);  
  2.         Set<String> set = jedis.keys("china:beijing*");  
  3.         for (String key : set) {  
  4.             System.out.println(key);  
  5.         }  

 输出结果:

china:beijing

 

 

 

通配符说明:

* 0到任意多个字符

? 1个字符


文章转自:http://huangqiqing123.iteye.com/blog/2391139

### 回答1: 可以使用 Python 编写一个程序,首先定义一个存储朋友信息的列表,每个元素为一个字典,存储姓名、生日、电话号码的信息。然后读入 n 个朋友的信息,将信息存入列表中。最后,将列表按照生日的先后顺序排序,从大到小输出通讯录。代码示例如下: ``` def sort_by_birthday(elem): return elem['birthday'] friends = [] n = int(input('请输入朋友个数:')) for i in range(n): name = input('请输入姓名:') birthday = input('请输入生日:') phone = input('请输入电话号码:') friends.append({'name': name, 'birthday': birthday, 'phone': phone}) friends.sort(key=sort_by_birthday, reverse=True) print('通讯录:') for friend in friends: print('姓名:%s,生日:%s,电话号码:%s' % (friend['name'], friend['birthday'], friend['phone'])) ``` ### 回答2: 这道题目要求我们编写一个程序,输入n个朋友的信息包括姓名、生日、电话号码,然后按照年龄从大到小的顺序依次输出通讯录。为了实现这个功能,我们可以采用以下步骤: 1. 定义一个结构体,用于存储每个朋友的信息包括姓名、生日和电话号码。可以定义如下: struct Friend { string name; // 姓名 string birthday; // 生日 string phone; // 电话号码 }; 2. 定义一个比较函数,用于按照年龄从大到小排序。我们可以根据生日计算每个朋友的年龄,然后将年龄较大的朋友排在前面。比较函数可以定义如下: bool cmp(Friend f1, Friend f2) { // 计算年龄 int age1 = // 计算f1的年龄 int age2 = // 计算f2的年龄 // 按照年龄从大到小排序 return age1 > age2; } 3. 输入n个朋友的信息,并将其存储到一个数组中。可以使用循环来读入每个朋友的信息,然后将其存储到数组中。输入代码可以定义如下: int n; // 朋友的个数 cin >> n; // 输入n Friend friends[n]; // 定义一个数组来存储朋友的信息 for (int i = 0; i < n; i++) { // 读入每个朋友的信息 cin >> friends[i].name >> friends[i].birthday >> friends[i].phone; } 4. 使用sort函数按照年龄从大到小排序。可以将存储朋友信息的数组和比较函数作为参数传递给sort函数,然后使用迭代器输出排好序后的通讯录。排序和输出代码可以定义如下: sort(friends, friends + n, cmp); // 按照年龄从大到小排序 for (auto it = friends; it != friends + n; it++) { // 输出排序后的通讯录 cout << it->name << " " << it->birthday << " " << it->phone << endl; } 综上所述,通过以上步骤,我们可以编写一个程序,按照年龄从大到小的顺序依次输出通讯录。 ### 回答3: 在编写程序前,需要先明确一下数据结构。本题要求按照年龄从大到小的顺序依次输出通讯录,因此需要一个用于存储朋友信息的结构体,以及一个用于存储所有朋友信息的数组。具体代码实现如下: ``` #include <iostream> #include <algorithm> using namespace std; struct Friend { string name; string birthday; string phone; int age; } friends[100]; bool cmp(Friend f1, Friend f2) { return f1.age > f2.age; } int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cin >> friends[i].name >> friends[i].birthday >> friends[i].phone; friends[i].age = 2021 - stoi(friends[i].birthday.substr(0, 4)); } sort(friends, friends + n, cmp); for (int i = 0; i < n; i++) { cout << friends[i].name << " " << friends[i].birthday << " " << friends[i].phone << endl; } return 0; } ``` 程序首先定义了一个结构体Friend,包括姓名、生日、电话号码和年龄。接下来定义了一个用于存储所有朋友信息的数组friends,最大长度为100。在主函数中,先读入朋友个数n,然后循环读入每个朋友的信息,并计算其年龄。注意年龄需要通过出生年份计算,可以通过string的substr方法截取出生年份。 接着利用STL提供的sort函数,按照年龄从大到小的顺序对所有朋友进行排序。排序使用了一个自定义比较函数cmp,其中"f1.age > f2.age"表示按年龄从大到小排序。最后循环输出排序后的朋友信息即可。 综上,本题需要利用结构体存储朋友信息,通过计算年龄和排序功能实现按照年龄从大到小的顺序输出通讯录。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值