Redis是否存在线程安全的问题?

提问者:帅平 问题分类:面试刷题
Redis是否存在线程安全的问题?
1 个回答
绿水长流
绿水长流
从Redis服务端层面来看:
Redis Server本身是一个线程安全的K-V数据库,也就是说在Redis Server上执行的指令,不需要任何同步机制,不会存在线程安全问题。(虽然Redis 6.0里面,增加了多线程的模型,但是增加的多线程只是用来处理网络IO事件,对于指令的执行过程,仍然是由主线程来处理,所以不会存在多个线程同时执行操作指令的情况。)
从Redis客户端层面来看:
虽然Redis Server中的指令执行是原子的,但是如果有多个Redis客户端同时执行多个指令的时候,就无法保证原子性。假设有两个redis client同时获取Redis Server上的key1,同时进行修改和写入,因为多线程环境下的原子性无法被保障,以及多线程情况下的共享资源访问的竞争问题,使得数据的安全性无法得到保障。
发布于:1个月前 (02-08) IP属地:四川省
我来回答