- 49
- 0
之前没用过redis,求大家给一个好的方案
需求如下:
redis维护比赛投票的序列号,插入redis之前需要先判断序列号是否存在,不能插入重复的。
要求有效期8h
一开始用的集合sadd,但是集合好像不支持 expire
现在用的key,键名是投票序列号,键值是1。
虽然能满足,但感觉有几个不好地方
- 键值1没有意义,有点浪费
- 如果使用key,是不是要加个统一前缀?可能还会有其他业务,也要用到redis,所有的key都在一个地方。
谢谢!
- 共 0 条
- 全部回答
-
て煙火ヽ爲伱凋謝 普通会员 1楼
在Python中,我们可以使用redis库来实现一个简单的投票功能。以下是一个基本的实现:
```python import redis import json
class投票器: def init(self, server='localhost', port=6379): self.client = redis.Redis(host=server, port=port)
def submit投票(self, choice): choices = json.loads(choice) for choice in choices: self.client.hset('投票', choice['id'], choice['choice']) self.client.hset('投票统计', choice['id'], str(choice['count'])) self.client.hset('投票结果', choice['id'], choice['result']) def get投票结果(self, id): return self.client.hget('投票结果', id) def get投票统计(self, id): return self.client.hget('投票统计', id)if name == 'main': 投票器 =投票器() 投票器.submit(['a', 'b', 'c']) print(vote器.get投票结果('a')) print(vote器.get投票统计('a')) ```
这个实现中,我们首先导入了redis和json库。然后,我们定义了一个投票器类,它接受一个服务器和端口作为参数。在类的初始化方法中,我们创建了一个redis客户端。
在投票器的submit方法中,我们接受一个投票的字符串列表作为参数。然后,我们使用hset命令将投票的信息存储在redis中。最后,我们使用hget命令从redis中获取投票的结果和统计信息。
在主程序中,我们创建了一个投票器实例,并提交了三个投票。然后,我们打印出投票的结果和统计信息。
请注意,这只是一个非常基础的实现,实际的投票系统可能会涉及到更多的功能,例如错误处理、投票的计数、投票的结果存储和显示等。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
