redis实际应用实现合集

一、redis实现抢红包的功能(set 数据结构)

分两种情况:

情况一:

从10个观众中随机抽2名幸运观众

首先需要把10个观众的id(具体是什么id可以根据实际业务情况自己定义)放到redis 的 set 集合里

然后随机抽取2名幸运观众,具体redis命令:

java 复制代码
127.0.0.1:6379> sadd act:002 0001
(integer) 1
127.0.0.1:6379> sadd act:002 0002
(integer) 1
127.0.0.1:6379> sadd act:002 0003
(integer) 1
127.0.0.1:6379> sadd act:002 0004
(integer) 1
127.0.0.1:6379> sadd act:002 0005
(integer) 1
127.0.0.1:6379> sadd act:002 0006
(integer) 1
127.0.0.1:6379> sadd act:002 0007
(integer) 1
127.0.0.1:6379> sadd act:002 0008
(integer) 1
127.0.0.1:6379> sadd act:002 0009
(integer) 1
127.0.0.1:6379> sadd act:002 0000
(integer) 1

插入10个观众,act:002是活动的名字,后面分别是观众id

查看观众:

java 复制代码
127.0.0.1:6379> SMEMBERS act:002
 1) "0007"
 2) "0005"
 3) "0006"
 4) "0008"
 5) "0003"
 6) "0004"
 7) "0002"
 8) "0000"
 9) "0009"
10) "0001"

插入成功

随机抽取2名幸运观众:

java 复制代码
127.0.0.1:6379> SRANDMEMBER act:002 2
1) "0001"
2) "0002"

情况二:

从10名观众中抽取奖项,其中一等奖1人,二等奖2人,三等奖3人

需要用到redis的 SPOP命令

java 复制代码
127.0.0.1:6379> spop act:002 1 #抽取一等奖 1 人
1) "0001"
127.0.0.1:6379> SMEMBERS act:002
1) "0002"
2) "0005"
3) "0007"
4) "0006"
5) "0000"
6) "0009"
7) "0003"
8) "0008"
9) "0004"
127.0.0.1:6379> spop act:002 2 #抽取二等奖 2 人
1) "0006"
2) "0005"
127.0.0.1:6379> SMEMBERS act:002
1) "0002"
2) "0007"
3) "0000"
4) "0009"
5) "0003"
6) "0008"
7) "0004"
127.0.0.1:6379> spop act:002 3 #抽取三等奖 3 人
1) "0004"
2) "0000"
3) "0003"
127.0.0.1:6379> SMEMBERS act:002
1) "0002"
2) "0007"
3) "0009"
4) "0008"
相关推荐
进击的_鹏13 分钟前
从零开始的 Redis 学习
服务器·数据库·c++·redis·缓存
feixing_fx16 分钟前
告别枯燥字体:Web 字体加载策略与 font-display 最佳实践
前端·css·前端框架·交互·css3
Liora_Yvonne36 分钟前
不懂后端,只会 TypeScript,想独立做完整项目?这套全栈底座就是给前端准备的
前端·后端·全栈
前端Hardy38 分钟前
GitHub 爆火!236K+ Star!一套 Skills 让 AI 按工程师方式写代码
前端·后端
烬羽44 分钟前
AI Coding 全流程实战:从需求到上线,我用 AI 开发了一个 NPM 包
前端·react.js·ai编程
前进的程序员44 分钟前
Codex破局:前端组件秒级生成|提速React/Vue开发,可复用提示词+实战调试经验
前端·vue.js·react.js·codex
前端snow1 小时前
ai agent ---output汇总
前端
4311媒体网1 小时前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端
JunjunZ1 小时前
Vue 3 文件预览的通用设计与实现
前端·vue.js
CappuccinoRose1 小时前
ES6+ 核心语法糖
前端·es6·解构·可选链·空值合并