摘要:
事务的隔离性由锁来实现 一、并发事务访问相同记录 1、读-读:并发事务相继读取相同的记录,不会引起什么问题。 2、写-写:并发事务对相同的记录做出改动。出现脏写问题,因此在多个未提交事务相继对一条记录做改动时,需要让他们排队执行。【加锁】 锁结构:trx信息:T1 这个锁结构是哪个事务生成的 is_ 阅读全文
摘要:
一、数据并发问题 针对事务的隔离性和并发性,访问相同数据的事务在不保证串行执行的情况下会出现的问题 1、脏写:对于两个事务SessionA、SessionB,如果事务SessionA修改了另一个未提交事务SessionB修改过的数据,那就意味着发生了脏写。 2、脏读:对于两个事务SessionA、S 阅读全文
摘要:
问题:删除操作缺乏原子性 场景 1、index1获得锁、执行具体操作、比较lock的uuid值确实和自己生成的uuid是否相等,相等则删除锁。 uuid = v1 set(lock, uuid) uuid.equals(get("lock")) 2、但是index1执行删除前,lock刚好过期时间已 阅读全文
摘要:
问题描述: 随着业务发展的需要,原单体单机部署的系统被演化分成分布式集群系统后,由于分布式系统多线程、多进程且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁 阅读全文
摘要:
一、缓存穿透 缓存穿透:key对应的数据在数据源并不存在,每次针对key的请求从缓存中获取不到,请求都会压到数据源,从而可能压垮数据源,比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库 现象: 1、应用服务器压力变大 2、redis命中率低 3 阅读全文
摘要:
集群: 容量不够,redis如何进行扩容 并发写操作,redis如何进行分摊 主从模式、薪火相传模式、主机宕机,导致ip地址发生改变,应用程序中配置需要修改对应的主机地址、端口等信息 之前是代理主机解决,redis的无中心化集群:任何一台服务器都可以作为集群入口 Redis集群实现了对Redis的水 阅读全文
摘要:
一、主从复制介绍 主机数据更新后根据配置和策略,自动同步到备机的master/slave 机制,Master以写为主,slave以读为主 好处:读写分离,性能扩展;容灾快速恢复(一主多从):一台slave从机挂掉,马上切换到另一台slave从机提供服务。 主机挂:集群 集群:一主多从 ——关联—— 阅读全文
摘要:
AOF(Append Only File) 以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读指令不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢 阅读全文
摘要:
RDB(Redis DataBase) 在指定的时间间隔内将内存的数据集快照(当前某点的数据snapshot)写入磁盘,它恢复时是将快照文件直接读到内存里【默认开启】 备份如何执行: Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件【保证数据的一致性和完整性】中, 阅读全文
摘要:
使用工具ab模拟测试:yum install httpd-tools ab --help:使用信息 ab -n 1000 -c 100 http://localhost8080/SecKill :一个1000请求中有100个并发操作 vim postfile 模拟表单提交参数,以&符号结尾;存放当前 阅读全文