小弟对于数据库这方面的知识实在有限,只是相较于mysql觉得redis用得很是顺手与舒服,但是看到诸大牛者都只将redis用于临时存储。我不禁对于自己将redis当做主力数据库的做法感到紧张,虽还不至于遇到什么过不去的难题,但是为了现在做的项目在未来能够好好运行,不由的来此诚心请教:
1. 是否redis可以用于小型项目的主要数据库。
2. 如若否,是何原因?隐患在何处?
3. 如若可,在使用redis时有何注意事项,而使系统稳定平稳。
谢谢。
巴扎黑2017-04-17 11:03:10
可以,从redis主页上可以看到已经有很多项目和公司使用了redis作为数据库方案。redis很多应用场景是内存型的临时存储,但是redis也提供了持久化存储的功能,所以数据落地是没有问题的。但是数据落地怎么做是比较重要的,如果比较频繁的dump数据到磁盘会比较吃力,不过你这里是小型网站的话应该问题不大。如果有必要可以把所有的落地操作在slaver机器上做来分散压力,redis对现在的master-slaver机制还不是很好,2.6好像还没能做到完全自动化的死机替换机制。可以参考下这里的文章可能对你有帮助:
http://blog.nosqlfan.com/html/3537.ht...
阿神2017-04-17 11:03:10
小型网站,如果并发不高,最好还是用MySQL之类的DB,毕竟数据有保证。
并不是说Redis不安全,如果用Redis,你要权衡好持久化的方案,综合考虑性能和数据安全。
其实两个都用是最好的,数据写到MySQL中,再从Redis读。。。
PHP中文网2017-04-17 11:03:10
首先我不建议你使用Redis做网站的主要数据库。
首先Redis的数据结构是kv格式的,非常单一,虽然提供了丰富的排列和整理方法,但仍然比较单一。他的优势在于,满足需求的条件下,速度快。
对于一个完整的网站,你要存储的数据结构一定较复杂,而且还有产生很多条件查询,这些都是Redis满足不了的。如果采用某些方式让Redis支持了,也会在性能上大打折扣。
最后,你说网站规模较小,那么我认为使用MySQL是完全可以满足你性能和安全性的需求的。
所以,我的建议是用MYSQL做为你的主要存储,对于某些缓存,数字,榜单等可以考虑放在Redis里。
阿神2017-04-17 11:03:10
1. 是否redis可以用于小型项目的主要数据库。
当然可以,对于key-value类型完全可以,对于按条件查询就不能满足了
2. 如若否,是何原因?隐患在何处?
(1)容量有限制
(2)不支持按条件查询
3. 如若可,在使用redis时有何注意事项,而使系统稳定平稳。
(1)使用redis做为数据库,容量就受内存的限制,使用前需要做好容量规划,当然后期也可以做分库(如果不娴太麻烦的话)
(2)数据量太大的话,性能是会受到影响的
(3)做好主从同步备份