【redis】go+redis模拟验证码功能

写在前面

在B站看redis教程,老师做了一个java+redis模拟验证码验证得功能。于是,我把它转换成了go来实现。

1.要求

1.每个手机每天只能发送3次验证码
2.每次接收得验证码2分钟内有效。

2.分析

1.对于要求1,我们可以每个手机号一天内发送得验证码次数
2.对于要求2,我们可以设置该验证码得过期时间为2min。

3.实现

1.连接数据库

var rdb *redis.Client
var codeKey string
 var ctx = context.Background()
func initClient()(err error)  {
   
	rdb = redis.NewClient(&redis.Options{
   
		Addr: "这里写自己虚拟机得ip地址、或者是本地得ip地址,视个人情况而定:6379",
		Password: "",
		DB: 0,
	})
	ctx,cancel := context.WithTimeout(context.Background(),
### 关于 Redis++ 和 AsyncRedis 的使用 #### Redis++ Redis++ 是 C++ 版本的 Redis 客户端库,提供了现代 C++ 风格接口来操作 Redis 数据库。该库不仅支持同步调用还支持异步调用,并且具有异常安全性和线程安全性。 对于 Redis++ 来说,其设计目标之一就是提供更贴近自然语言习惯的操作方式,使得开人员能够更容易地上手并写出简洁高效的代码[^1]。 ```cpp #include <sw/redis++/redis++.h> using namespace sw::redis; int main() { // 创建一个默认配置下的 Redis 连接实例 auto redis = Redis("tcp://127.0.0.1:6379"); // 设置键 "hello" 的值为 "world" redis.set("hello", "world"); // 获取键 "hello" 的值 std::string value; value = redis.get("hello").value(); } ``` #### AsyncRedis AsyncRedis 则专注于 Python 生态中的非阻塞 I/O 操作,旨在提高应用程序性能特别是在面对大量并请求时的表现。它基于 `asyncio` 库实现了完整的 Redis 协议解析器和支持所有标准命令集的功能。 下面是一个简单的例子展示了如何利用 AsyncRedis 实现基本的数据存取: ```python import asyncio from aredis_om import Client, JsonModel, Field class User(JsonModel): name: str = Field(index=True) async def example(): client = Client() await client.connect() user = User(name="Alice") await user.save() fetched_user = await User.find(User.name == "Alice").first().execute() print(fetched_user.json()) loop = asyncio.get_event_loop() loop.run_until_complete(example()) ``` 需要注意的是上述示例中使用的 `aredis_om` 并不是官方推荐的方式而是第三方扩展包用于简化对象映射逻辑;如果只需要基础功能的话可以直接使用 `aredis` 或者原生的支持异步特性的 `redis-py` 库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值