Tag: 设置了

TTL为一个集合成员

在Redis中是否可以将TTL(生存时间)设置为不是针对特定键,而是针对某个成员设置? 我正在使用由Redis文档提出的标签结构 – 数据是简单的键值对,标签是包含与每个标签对应的键的集合,例如 > SETEX id:id_1 100 'Lorem ipsum' OK > SADD tag:tag_1 id:id_1 (integer) 1 密钥id:id_1将按预期过期,但我看不到从tag:tag_1集合中删除相应成员的有效方法。 我想到的一个方法是使用包含脚本的cron作业,该脚本会定期从集合中删除过期的密钥 – 将所有标签名称添加到另一个集合,然后迭代所有标签,然后遍历每个标签对应的所有id,并检查是否相应的密钥存在 – 如果没有,则调用SREM 。 我不认为这将是一个有效的方法,我可能希望保持标签尽可能干净,因为这些集合的大小可能会影响多个标签( SINTER )的search性能。 有没有更“内在”的方式?

Python集合理解

所以我有一个家庭作业这两个问题,我被困在第二个。 使用Python Set Comprehension(Python的等价于Set Builder符号)生成一组小于100的所有素数。回想一下,质数是一个大于1的整数,不能被除整数以外的任何整数本身和1.将你的一组素数存储在一个variables(你将需要它的额外部分)。 输出素数集(例如,使用打印function)。 使用Python Set Comprehension生成一组有序对(长度为2的元组),由所有由小于100的素数组成的素数对构成。素数对是一对连续的奇数,都是素数。 将您的一组Prime对存储在一个variables中。 你的号码1将是非常有帮助的。 输出你的一组Prime对。 对于第一个,这是完美的作品: r= {x for x in range(2, 101) if not any(x % y == 0 for y in range(2, x))} 然而,我很难第二个。 我认为我可能不得不采取集合r的笛卡尔积,但是我不确定。 这让我有点接近,但我只是想连续对。 cart = { (x, y) for x in r for y in r if x < y }