面试疑问写在前面,看过本文,让那些没使用过redis的也能回答上来面试官的问题,不至于陷入太尴尬的境地!因为现在好多面试官不单单只是问你,用没用过redis,而是会一直问下去,比如:你项目里面用redis做什么?里面放什么数据?什么类型?对于list类型的数据,我更改了一个如何高效率的刷新redis缓存?
文章插图
带着这些疑问我们下面去讨论 。希望各位大佬勇于补充 。
Redis简介:
文章插图
【面试宝典之Redis!】如大家所知道的一样,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库(区别于MySQL等关系型数据库),并提供多种语言的API调用方案 。
Redis存储数据结构:一共支持五种数据类:
string(字符串)
hash(哈希)
list(列表)
set(集合)
zset(sorted set有序集合) 。
Redis内存占用情况:测试情况:90万个键值对(键是0到899999值是字符串“hello world”)在32位操作系统的笔记本上 用了90MB,但是使用64位的操作系统的话,相对来说占用的内存会多一点,这是因为64位的系统里指针占用了8个字节,但是64位系统也能支持更大的内存,所以运行大型的redis服务还是建议使用64位服务器 。
坚持一个原则:使用数据库能解决的业务场景,就不要使用REDIS 。
Redis使用场景:
- 排行榜
- 序列号
- 计数器
- 流水号
- 验证码
- 用户信息
- token
- 菜单
- 最新列表
- 关注列表
- 分布式锁与单线程机制
文章插图
下面具体说下每个数据类型的使用场景,也好应付面试官的随机发问 。
- Zset使用场景