文章目录
1. 你们为什么使用redis?
答: 面试官好,我们的数据库主要用的是MySQL,目前的业务发展设计到高并发场景下的库存扣减,网站首页访问流量高峰等等,数据库已经支撑不住如此高的并发,于是我们引入了缓存中间件,市面上的中间件redis和memcached我们有在用。我在使用过程中对reids和memcached做了下对比:
1) redis相比memcached来说用拥有更多的数据结构和支持更丰富的数据操作。 所以像我们公司设计复杂的结构和操作,我们选择了redis
2) 在内存使用效率上做了下对比,单纯使用key-value 存储的话,memcached的内存利用率更高,但redis采用hash结构来做key-value 存储,由于其组合式的压缩,让内存的利用率高于了memcached
3) 在性能上, redis只使用单核,而memcached 可以使用多核,所以平均每一个核上的redis在存储小数据时比memcached性能要高。
在使用过程中,有时候也设计到100K以上的数据,这个时候,redis的性能就稍逊于memcached
3) 在数据持久化支持上,redis提供了两种持久化策略,分别是RDB快照和AOF日志,而memcached 不支持数据持久化操作。
所以综合下来我们选择了redis。
2. redis有哪些数据类型
答: 关于redis的数据类型,我知道的有这么几个: 字符串string,字典hash,列表list,集合set , 有序集合 SortedSet,因为公司涉及到高并发,所以还接触过Bloom Filte