1、redis 是什么?都有哪些使用场景?
Redis是一个开源的,使用ANSI C语言编写,支持网络,可基于内存,可持久化的日志型,key-value数据库。
- 数据高并发的读写
- 海量数据的读写
- 对扩展性要求高的数据
2、redis 有哪些功能?
- 数据缓存功能
- 分布式锁的功能
- 支持数据持久化
- 支持事务
- 支持消息队列
3、redis 和 memcache 有什么区别?
- memcache所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
- redis的速度比memcache快很多
- redis可以持久化其数据
4、redis 为什么是单线程的?
因为 cpu 不是 Redis 的瓶颈,Redis 的瓶颈最有可能是机器内存或者网络带宽。既然单线程容易实现,而且 cpu 又不会成为瓶颈,那就顺理成章地采用单线程的方案了。
关于 Redis 的性能,官方网站也有,普通笔记本轻松处理每秒几十万的请求。
而且单线程并不代表就慢。 nginx 和 nodejs 也都是高性能单线程的代表。
5、redis 支持的数据类型有哪些?
Redis支持多种数据类型,这些数据类型使得Redis不仅能够处理简单的键值对存储,还能够实现更复杂的数据结构和用例。以下是Redis支持的主要数据类型:
-
字符串(Strings):
- 基本的数据类型,用于存储字符串数据,如用户信息、配置参数等。
-
列表(Lists):
- 列表中的每个元素都是字符串,列表可以作为队列或者栈使用,支持两端添加或移除元素。
-
集合(Sets):
- 无序集合,元素唯一,可以用于存储唯一性的数据集,支持集合操作如交集、并集、差集等。
-
有序集合(Sorted Sets):
- 与集合类似,但每个元素都有一个分数(score)与之关联,可以按照分数对元素进行排序。
-
哈希(Hashes):
- 键值对集合,其中键和值都是字符串,类似于某些编程语言中的字典或哈希表,适合存储对象。