关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

redis业务流程实践活动 , 此次用哈希

发布时间:2020-03-12 00:00:00

常常会被别人问在哪些情景下应用来到redis ? 这一难题和业务流程是很有关的 , 摆脱业务流程要求的回应都不可以说动他人.

在我的业务流程里有一个递交使用的表格申请办理 , 这一申请办理以前是默认设置立即存进数据库查询的订单信息表和公司表 .

之后不清楚被哪个闲杂人等发觉了,就一直往里面递交垃圾数据 , 提升了短信验证码和手机上验证码短信 , 依然不可以阻拦住他递交的激情 .

pm一发火 , 说把它改为后台管理审批根据后再进库 , 而且审批按键要有及时性 , 请求超时的也不可以递交 , 要我一天内就处理掉 .

 

由于企业的数据库查询必须独立申请办理建表 , 也有设计方案表构造 , 还得等审批 , 時间赶不及 .细心一想 , redis不就是说个nosql种类的数据库查询吗 , 而且那条数据信息并不一定一直留着 , 敢想敢干 ,立即往redis里存 , 后台管理提升个审批网页页面 , 再去插进数据库查询.

 

redis的五种基本数据类型中 , 有一种十分适合 , 那便是hash , 储存一条相近数据库查询的纪录 .

设计方案下k-v  ,  key就是说order:{唯一序号}  , value是 每一键值对 field value  ,  field1 value1 ...

 

总体设计进行后 , 业务流程编码相近那样:

$order=array();$order['name']="shihan";$order['admin']="shihan";$id=sha1(time().$_SERVER['SERVER_ADDR'].getmypid().mt_rand());$key="order:".$id;$redis->expire($key,86400);$redis->hMset($key,$order);
这里边id是唯一的 , 拿時间-系统进程id-ip-自然数 , sha1转化成 .到期時间必须独立用expire来设定
 
取下数据信息是下边那样 :
$key="order:".$id;$orderField=array("name","admin");$order=$redis->hMget($key,$orderField);

 

取下之后再进库就就行了 , 随后删除这一key.

这一保持就是说运用了nosql数据库查询的协调能力 , redis丰富多彩的基本数据类型 , 处理了业务流程难题.


/template/Home/Zkeys/PC/Static