一 咱们公司的数据库架构处于什么阶段?
01单机时代(单个数据库)----》02Memcached(缓存)+Mysql+垂直拆分(Memcached作为一个独立的分布式的缓存服务器,使用缓存技术可以减缓数据库的压力,多台web机器通过文件缓存也可以实现共享,能缓解数据库的读取压力,但不能解决数据库的写入压力)----》03Mysql主从读写分离(使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性,解决了数据库写的压力)---》04分表分库+水平拆分+mysql集群(这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,这时候开始流行使用分表分库来缓解写压力和数据增长的扩展问题,MySQL还推出了MySQL Cluster集群,但性能并不是很稳定)---》05MySql的扩展瓶颈(mySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO(磁盘)压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题)--06今天数据库架构的样子:。。。。
具体内容链接:https://mp.youkuaiyun.com/postedit/88673523
(没有数据的公司是没有灵魂的)
咱们公司的集群大概有多少个?
20个差不多
二 面试官可能会问:你上家公司的移除算法是怎么算的啊
自己也需要注意一下这个问题,公司的移除算法太弱的话,就不要随便去了,容易倒闭,恩,哈哈哈
maxmemory-policy:
volatile-lru -> remove the key with an expire set using an LRU algorithm
allkeys-lru -> remove any key according to the LRU algorithm
volatile-random -> remove a random key with an expire set
allkeys-random -> remove a random key, any key
volatile-ttl -> remove the key with the nearest expire time (minor TTL)
noeviction -> don't expire at all, just return an error on write operations
翻译:
(1)volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
(2)allkeys-lru:使用LRU算法移除key
(3)volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
(4)allkeys-random:移除随机的key
(5)volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
(6)noeviction:不进行移除。针对写操作,只是返回错误信息
三 你们公司的数据从哪来(获取数据的有哪些方式)
数据可以从:公司提供的日志文件中获取,也可以从数据库获取,还可以使用网络爬虫技术获取(网络爬虫就是把一个网页的信息扒下来,例如之前写的淘淘商城项目就是把京东项目扒下来了)