首页 > 作文

[Redis] redis业务实践 , 这次用哈希

更新时间:2023-04-08 09:11:13 阅读: 评论:0

经常会被人问在什么场景下使用到了redis ? 这个问题和业务是很相关的 , 脱离业务需求的回答都不能说服别人.

在我的业务里有一个提交试用的表单申请 , 这个申请之前是默认直接存入数据库的订单表和企业表 .

后来不知道被那个闲人发现了,就一直往里提交垃圾数据 , 增加了验证码和手机短信验证码 , 仍然不能阻挡住他提交的热情 .

pm一生气 , 说把它改成后台审核通过后再入库 , 并且审核按钮要有时效性 , 超时的也不能提交 , 让我一天内就解决掉 .

因为梦醒了歌词公司的数据库需要单独申请建表 , 还有设计表结构 , 还得等审核 , 时间来不及 .仔细一想 , redis不就是个nosqlotsofl类型的数据库吗 , 并且这条数据并不需要一直留着 , 说干就干 ,直接往redis里存 , 后台增加个审核页面 , 再去插入数据库.

redis的五种基本数据类型中 , 有一种非常合适 , 那就是hash , 存储一条类似数据库的记录 .

设计下k-v , key就是order:{唯一编号} , value是 每个键值对 field value , field1 value1 …

结构设计完成后 , 业务代码类似这样:

$order=array();$order['name']="shihan";$order['admin']="shihan";$id=sha1(timeparents怎么读().$_rver['rver_addr'].getmypid().mt_rand());$key="order:".$id;$redis->expire($key,86400);$redis->hmt($key,录取批次$order);

这里面id是唯一的 , 拿时间-进程id-ip-随机数 , sha1生成春娇与志明经典台词 .过期时间需要单独用expire来设置 取出数据是下面这样 :

$key="order:".$id;$orderfield=array("name","admin");$order=$redis->hmget($key,$orderfield);

取出来后再入库就可以了 , 然后删掉这个key.

这个实现就是利用了nosql数据库的灵活性 , redis丰富的数据类型 , 解决了业务问题.

本文发布于:2023-04-08 09:11:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/bd75eb86994837cc20d147fceb13349c.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:[Redis] redis业务实践 , 这次用哈希.doc

本文 PDF 下载地址:[Redis] redis业务实践 , 这次用哈希.pdf

标签:数据库   业务   时间   验证码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图