Redis实现简单投票系统(微服务系列)

2023-11-14

package com.jt.redis;

import redis.clients.jedis.Jedis;

import java.lang.reflect.Member;
import java.util.Set;

public class VoteDemo01 {

    public static void main(String[] args) {
        String activityId = "1001";
        String userId1 = "user01";
        String userId2 = "user02";
        String userId3 = "user03";
        //执行投票的操作
        Boolean flag = doVote(activityId,userId1);
        System.out.println(flag);
        flag = doVote(activityId,userId1);
        System.out.println(flag);
        doVote(activityId,userId2);
        doVote(activityId,userId3);
        //获取投票的总数
        Long along = doCount(activityId);
        System.out.println(along);
        //获取投票的用户
        Set<String> members = doMembers(activityId);
        System.out.println(members);

    }

    private static Set<String> doMembers(String activityId) {
        //连接数据库
        Jedis jedis = new Jedis();
        //2.查询用户
        Set<String> smembers = jedis.smembers(activityId);
        //3.关闭资源
        jedis.close();
        return smembers;
    }

    //获取总票数
    private static Long doCount(String activityId) {
        //1.建立连接
        Jedis jedis = new Jedis("1921.68.126.128",6379);
        //获取总票数
        Long scard = jedis.scard(activityId);
        jedis.close();
        return scard;
    }
    //进行投票
    private static Boolean doVote(String activityId, String userId) {
        //1.建立连接
        Jedis jedis = new Jedis();
        //检查是否投过票
        Boolean flag = jedis.sismember(activityId, userId);
        if(flag){ //如果是真 就是投过票了  代码块执行取消
            jedis.srem(activityId, userId);
            jedis.close();
            return flag;
        }
        //如果是false,第一次投票
        jedis.sadd(activityId, userId);
        jedis.close();
        return flag;
    }
}

在很多系统中设计中,都会有一个活动设计,开启一个活动之前,可以对这个活动的支持力度先进行一个调查,例如基于这个活动设计一个投票系统

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis实现简单投票系统(微服务系列) 的相关文章

  • python 3.5 中的 json.loads 和 Redis

    我使用 json dumps 创建了一个 JSON 对象 并在 Redis 列表中将其 RPUSH ed 当使用 LRANGE redis lrange 返回 JSON 时 我收到一个二进制字符串 b si 00 ff 所以 json lo
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • 仅当尚未设置时才进行原子设置

    仅当尚未在 Redis 中设置时 是否有办法执行原子设置 具体来说 我正在创建一个像 myapp user user email 这样的用户 并且希望 Redis 在 user email 已被占用时返回错误 而不是默默地替换旧值 比如声明
  • PooledRedisClientManager 未释放连接

    我将 json 数据列表存储在 redis 中并使用 ServiceStack c 客户端访问它 我本质上是在管理自己的外键 我在其中存储zrangeid 我使用应用程序内部的接口从zrange然后从 Redis 获取底层 json 对象并
  • WSL Redis 遇到系统尚未使用 systemd 作为 init 系统(PID 1)启动。无法操作[已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试遵循本文中讨论的 Redis 安装过程article https www digitalocean com community
  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • Redis 排序集和解决关系

    我正在使用 Redis 排序集来存储我正在处理的项目的排名 我们没有预料到 我们想要如何处理关系 Redis 按字典顺序对具有相同分数的条目进行排序 但我们想要做的是对具有相同分数的所有条目给予相同的排名 例如在以下情况 redis 127
  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • redis 阻塞直到 key 存在

    我是 Redis 新手 想知道是否有办法能够await get通过它的键来获取值 直到该键存在 最小代码 async def handler data await self fetch key async def fetch key ret
  • 通过 StackExchange.Redis 连接到 Redis Servier

    我尝试使用以下方法制作一个测试项目Redis https redis io服务器 通过 Virtual Box 安装在 Linux Ubuntu 虚拟机上 Linux 机器通过 Virtual Box 的桥接适配器与本地网络连接 Virtu
  • 在 Kubernetes/Openshift 中将客户端-服务器流量保持在同一区域的最佳方法?

    我们运行兼容 Kubernetes OKD 3 11 的本地 私有云集群 其中后端应用程序与用作缓存和 K V 存储的低延迟 Redis 数据库进行通信 新的架构设计将在两个地理上分布的数据中心 区域 之间平均划分工作节点 我们可以假设节点
  • SignalR 无法连接到 SSL 上的 Azure Redis

    我目前在 Azure 上托管我的 redis 缓存服务器 并让 signalR 依赖它作为骨干 使用以下内容 GlobalHost DependencyResolver UseRedis 服务器 端口 密码 eventKey 这可以在端口
  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • Node Js:Redis 作业在完成其任务后未完成

    希望你们做得很好 我在我的 Nodejs 项目中实现了 BullMQ Bull 的下一个主要版本 来安排发送电子邮件的作业 例如 发送忘记密码请求的电子邮件 所以 我编写了如下所示的代码 用户服务 await resetPasswordJo
  • 使用 Celery 通过 Gevent 进行实时、同步的外部 API 查询

    我正在开发一个 Web 应用程序 该应用程序将接收用户的请求 并且必须调用许多外部 API 来编写对该请求的答案 这可以直接从主 Web 线程使用 gevent 之类的东西来扇出请求来完成 或者 我在想 我可以将传入的请求放入队列中 并使用
  • 如何在Redis中只保存一个数据库?

    我是 Redis 新手 有一个与备份相关的问题 目前 我有一个实例在 Windows 服务器上运行 在这个实例中 我当前有一项 工作 将数据存储在一个数据库中 我不想备份这些数据 我必须创造一份新工作 我的第一个想法是将数据存储在另一个数据
  • Redis+Docker+Django - 错误 111 连接被拒绝

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker
  • Laravel 异常队列最大尝试次数超出

    我创建了一个应用程序来向多个用户发送电子邮件 但在处理大量收件人时遇到问题 该错误出现在failed jobs table Illuminate Queue MaxAttemptsExceededException App Jobs ESe
  • Redis 队列工作程序在 utcparse 中崩溃

    我正在尝试按照以下教程获得基本的 rq 工作 https blog miguelgrinberg com post the flask mega tutorial part xxii background jobs https blog m

随机推荐

  • 【leetcode】----102二叉树的层序遍历

    102二叉树的层序遍历 给你一个二叉树 请你返回其按 层序遍历 得到的节点值 即逐层地 从左到右访问所有节点 示例 二叉树 3 9 20 null null 15 7 3 9 20 15 7 返回其层次遍历结果 3 9 20 15 7 BF
  • C#与C++交互系列:C#调用C++的三种方式

    参考 https zhuanlan zhihu com p 30746354 内容 目前 Net平台中托管环境调用非托管环境有三种方法 P Invoke 针对原生c方法调用 C Interop 针对托管C C CLI 使用的方法 COM I
  • Java的学习路线(非常完整)

    Java 是一种跨平台的 面向对象的高级编程语言 主要用来进行网站后台开发 也就是服务器端开发 或者动态网站开发 Java 是全球最受欢迎的编程语言之一 在世界编程语言排行榜 TIOBE 中 Java 一直霸占着前三名 有好多年甚至都是第一
  • KDD2023丨预训练论文合集

    ACM SIGKDD 国际数据挖掘与知识发现大会 简称KDD 会议始于1989年 是数据挖掘领域历史最悠久 规模最大的国际顶级学术会议 也是首个引入大数据 数据科学 预测分析 众包等概念的会议 每年吸引了大量数据挖掘 机器学习 大数据和人工
  • Error attempting to get column ‘create_time‘ from result set. Cause: java.sql.SQLFeatureNotSupporte

    错误 org springframework dao InvalidDataAccessApiUsageException Error attempting to get column create time from result set
  • 使用arthas在线诊断flink的那些事

    最近在使用arthas诊断工具 诊断java服务的一些问题 突然想到能不能使用arthas诊断flink的jobManager和taskManager呢 答案是可以的 采用javaagent 在flink启动jobmanager和taskM
  • QT 程序架构 及 Ui 来龙去脉

    ifndef MAINWINDOW H define MAINWINDOW H include
  • 好用的IDEA插件之Alibaba Java Coding Guidelines

    一 简介 Alibaba Java Coding Guidelines是一款基于阿里巴巴Java开发手册的IDEA插件 它提供了一系列的代码检查和自动修复功能 帮助开发者遵循阿里巴巴的Java编码规范 该插件支持的检查类型包括命名规范 代码
  • 使用Sentencepiece +CNN进行文本分类

    Sentencepiece是google开源的文本Tokenzier工具 其主要原理是利用统计算法 在语料库中生成一个类似分词器的工具 外加可以将词token化的功能 对比开源的分词器 它会将频繁出现的字符串作为词 然后形成词库进行切分 所
  • 清明上河图30亿像素_清明上河图高清下载

    清摹本清明上河图高清全图 一亿像素 是为了方便众多学者们研究品评清明上河图的资源 小编这里给大家带来的是过亿像素的清摹本清明上河图高清全图 画质好到想假的一样 第一眼看到小编觉得以前看的清明上河图都是假的 如果你有需要的话 那就快来IT猫扑
  • 图片素材网站

    七大壁纸网站满足所有分辨率需求 如今手机电脑都是1080p起步 偏高端的2k 高端的4k都逐渐进入普通大众的接受范围 而电视机近两年不是4k都不好意思拿出手 虽然电视4k在今年这个时候对普通人来说也并不实用 我经常就为了找一些分辨率高的壁纸
  • 排序算法-【Java实现】-【桶排序、冒泡排序、快速排序、插入排序】

    排序算法 Java实现 桶 冒泡 快速 归并 插入排序 排序算法演示地址 https www cs usfca edu galles visualization ComparisonSort html 桶排序 顾名思义 将数组分到有限数量的
  • 有序链表转换二叉搜索树

    力扣入口 109 有序链表转化二叉搜索树 给定一个单链表 其中的元素按升序排序 将其转换为高度平衡的二叉搜索树 本题中 一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 思路加图解 思路1 class So
  • 【Python】dlib 无需编译安装 dlib-19.23.0-cp39-cp39-win_amd64.whl

    Dlib介绍 Dlib is a modern C toolkit containing machine learning algorithms and tools for creating complex software in C to
  • HTML5录音并调用百度语音识别

    HTML5录音借鉴的网上的代码 但是下载下来却无法用 查阅了好多资料 终于在国外某网站上找到原因 原来是js函数废弃了 替换为新的js函数名即可 HTML5录音的代码 http www it165 net design html 20140
  • opencv学习笔记十:使用cv2.morphologyEx()实现开运算,闭运算,礼帽与黑帽操作以及梯度运算

    openvc中morphologyEx 函数是一种形态学变化函数 数学形态学可以理解为一种滤波行为 因此也称为形态学滤波 滤波中用到的滤波器 kernal 在形态学中称为结构元素 结构元素往往是由一个特殊的形状构成 如线条 矩形 圆等 基本
  • Tomcat解决跨域问题

    Tomcat解决跨域问题 把下面的代码粘贴到web xml的552行下即可
  • 在 Dev-C++ 或 Code::Blocks 下面配置 EasyX

    前言 EasyX 虽然挺好用 但是目前官方只发布了针对 VC 的使用方法 本文介绍如何将 EasyX 配置到 DevCpp 或 CodeBlocks 里面 并提供相关的库 平时我工作忙 有问题直接在后面留言 我会尽力修改 注 版本太老的 m
  • java域名解析

    import java net InetAddress import java net UnknownHostException public class GetIp static public void main String args
  • Redis实现简单投票系统(微服务系列)

    package com jt redis import redis clients jedis Jedis import java lang reflect Member import java util Set public class