0

系统注册的时候发送的短信验证码是放在数据库里存下来好还是放在session里?现在公司的做法是放在数据库里,但是我觉得很浪费,产生很多废数据,而且存在短信发出去后可能存数据库失败的问题。像图片验证码就是直接存session的,一般业务应用会用到短信发送记录吗?感觉存了也没太大用

malie0 287
2017-09-12 提问
10 个回答
1

已采纳

1:如果你的系统现在没有使用像redis这种缓存,并且系统的注册用户访以及可预见的未来注册用户也不是很高(注册不是一个很频繁的操作),可以放在session中,否则还是推荐放在缓存中。
2:如果系统已经有使用像redis这样缓存的地方,那就放在缓存中吧。

2

放redis

1

这种数据不会是持久化数据的,存数据库只是为了方便查询而已,其实,如果你存在redis更好,真的。

1

短信验证码一般会有个失效时间,比如5分钟
1、redis的数据时效特性完美的支撑
2、根据key查value性能超高

1

取决于你是否需要持久化该种数据,不需要的话完全可以放在redis里面。

1

一般放redis里面好一些,当然如果支持session也没什么问题(如果你是写的接口就不行了)

1

存储数据库的好处是,方便以后做数据分析使用。。。。。

1

这种东西很明显应该用缓存啊,放在redis里是最合理的,因为验证码一般时效就十分钟到三十分钟有效,时间已过就没有什么用了,放数据库既浪费空间,又增加数据库压力(因为这个东西不是需要长久去保存的);你放redis里只需要给他设置一个过期时间,过期了,这个key没有了,就是失效了,也方便判断;

1

楼上很多都说存redis,我有些不同意见:除非楼主有其他业务需求搭了redis,否则没必要专门为了存验证码搭redis。
存session的话,其实看session的实现,比如nodejs很多session的实现就是存数据库的。
我建议的做法:怎么方便怎么存,存数据库没有任何问题,说增加数据库压力的,其实国内大部分公司项目,远没有用到数据库的瓶颈。特别是前期的小项目。反而,开发效率才是宝贵的。

也可以试试一些集成好的手机号验证服务,也很方便,比如onlyid.net之类的。

0

可以尝试放到redis中,存取效率高,推荐使用http://smsow.zhenzikj.com/doc...

撰写答案

推广链接