云数据库Redis是单线程的,为什么会产生线程问题?
【新网云资讯】Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。
Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。
Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过RedisSentinel实现的高可用方案,同时还支持通过RedisCluster实现的数据自动分片能力。Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间复杂度。
Redis作为一个非常成功的数据库,提供了非常丰富的数据类型和命令,使用这些,我们可以轻易而高效地完成很多缓存操作,可是总有一些比较特殊问题或需求需要解决,这时候可能就需要我们自己定制自己的Redis数据结构和命令。
Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异常。我们都知道Redis是单线程的,可是它怎么会有线程安全问题呢?
Redis的线程安全问题的产生,并不是来自于Redis服务器内部。Redis作为数据服务器,就相当于多个客户端的共享内存,多个客户端就相当于同一进程下的多个线程,如果多个客户端之间没有良好的数据同步策略,就会产生类似线程安全的问题。典型场景是:
Redis内存储了一个用户的状态:user5277idle;
客户端连接A读取了用户状态,获取到用户的空闲状态statusget(user5277);
客户端连接B也同样读取了用户状态;
客户端连接A给用户安排了一个任务,并将Redis内用户状态置为忙碌set(user5277,busy);
客户端连接B同样设置用户为忙碌状态。
可是此时用户却被同时分配了两个任务。
导致这个问题的原因就是虽然Redis是单线程的,能保证命令的序列化,但由于其执行效率很高,多个客户端的命令之间不做好请求同步,同样会造成命令的顺序错乱。
当然这个问题也很好解决,给用户状态加锁就行了,使同一时间内只能有一个客户端操作用户状态。不过加锁我们就需要考虑锁粒度、死锁等问题了,无疑添加了程序的复杂性,不利于维护。
新网云数据库Redis专有网络VPC在TCP层直接进行网络隔离保护;内存加硬盘的混合存储方式,在提供高速数据读写能力的同时满足数据持久化需求,支持单节点架构、主从架构、分布式集群架构,满足纯缓存场景、读写分离、随时需要扩展数据库性能等不同的业务需求,可根据业务需求对集群进行升配、扩容等操作,集群版支持增加主节点,实现云上资源弹性扩展。
情态动词九年级教学案课题m5u3语法复习情态动词课型复习课教学目标归纳语法情态动词巩固练习情态动词重点巩固练习情态动词难点归纳语法情态动词教学……
课文钓鱼的启示说课稿今天我要说课的课文是人民教育出版社出版小学语文五年级上册第四组的第一篇课文《钓鱼的启示》。下面我将从教材的特点、教学目标的确定、教学教法的选择、教学过程的预设四个方面作简要的说……
汉语拼音jqx教学反思范本语文学习,是最具有灵性的。语文课堂,就应有学生自己的语言,自己的体验,自己的灵魂和思想。但我们传统的语文课堂教学,讲究预设,按部就班,亦步亦趋。由于目标预定,教师往往为任务而教……
精卫填海阅读及答案太阳神炎帝有一个小女儿,名叫女娃,是他最钟爱的女儿。炎帝不仅管太阳,还管五谷和药材。他事情很多,每天一大早就要去东海,指挥太阳升起,直到太阳西沉才回家。炎帝不在家时,女娃……
2019高中语文一轮精品复习学案专题部分简明、连贯、得体、准确、鲜明、生动【高考目标】语言表达简明、连贯、得体、准确、鲜明、生动。【考点阐释】《考试大纲》对本考点的要求是语言表达……
活版节选的阅读答案【原文】《活版》(节选)板印书籍,唐人尚未盛为之。五代时始印五经,已后典籍皆为板本。庆历中有布衣毕昇,又为活板。其法:用胶泥刻字,薄如钱唇,每字为一印,火烧令……
爱护水源保护环境教案幼儿园小班环保教案:爱护水源、保护环境活动目标:萌发爱护水资源的情感知道水被污染了,生物就不能生存练习钻过70厘米高的障碍物重点难点重点:萌……
四年级数学上角的度量课后教学反思四年级数学上《角的度量》课后教学反思四年级上册第二单元《角的度量》,本课的教学重点是角单位以及用量角器量角的方法。对于小学生来讲量角方法的其实就是用量角器上知道度数的角与……
难忘的泼水节优质说课稿一、说教材内容今天我说课的题目是人教版二年级下册第三组中的一篇课文《难忘的泼水节》。这一单元的主题围绕爱祖国、爱家乡。这篇课文是一个充满温情的感人故事。一年一度的泼水节被……
用股字怎么组词造句股g大腿,下肢从臀部到膝盖的一段。某些机关、企业、团体中的组织单位。集合资金的一份。量词,用于气体等或成条的东西:一股线。股票。股字组词……
古诗三首的课文教学设计之一教材分析:这三首古诗,分别写了春天和夏天的景物,给人以美的享受。游园不值是宋朝诗人叶绍翁的作品。写诗人去友人园中观赏春色,主人不在,但看见一枝红杏伸出墙来,想像满园春色感……
本学期体育教学反思本学期的体育教育教学结束了,在教育教学中有许多的得与失、成功与失败,为了今后能够更好的为教学服务,现将这一学期的体育工作进行总结和反思。一、情景设置与信息反馈:我这……