Redis为什么是单线程的?
1.前言
近些年来,由于网络的发展,我们做的项目的用户量也随之递增。在项目中增加了必不可少的一环:缓存。并且在平时的面试中,缓存也是必问的一个知识点。就目前来说,redis和memcached 是最主流的缓存解决方案,并且redis尤其占比极大。今天让我们探究一下redis中的一个知识点,redis为什么是单线程的?
首先先让我们简单认识redis?让不清楚的同学有个大概认知。
2.简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
redis在实际开发中,可以用作数据库、缓存以及消息中间件等等。
3.redis为什么是单线程的?