账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    求一个投票相关的简单redis方案
    49
    0

    之前没用过redis,求大家给一个好的方案

    需求如下:
    redis维护比赛投票的序列号,插入redis之前需要先判断序列号是否存在,不能插入重复的。
    要求有效期8h
    一开始用的集合sadd,但是集合好像不支持 expire
    现在用的key,键名是投票序列号,键值是1。
    虽然能满足,但感觉有几个不好地方

    1. 键值1没有意义,有点浪费
    2. 如果使用key,是不是要加个统一前缀?可能还会有其他业务,也要用到redis,所有的key都在一个地方。

    谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 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中获取投票的结果和统计信息。

      在主程序中,我们创建了一个投票器实例,并提交了三个投票。然后,我们打印出投票的结果和统计信息。

      请注意,这只是一个非常基础的实现,实际的投票系统可能会涉及到更多的功能,例如错误处理、投票的计数、投票的结果存储和显示等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部