Peter20 Peter20
4年前
Redis集群详解
Redis集群详解Redis有三种集群模式,分别是:主从模式Sentinel模式Cluster模式三种集群模式各有特点,关于Redis介绍可以参考这里:Redis官网:https://redis.io/,最新版本5.0.4主从模式主从模式介绍主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(sl
Stella981 Stella981
3年前
Redis 单线程如何处理那么多的并发客户端连接?
为什么Redis是单线程的1.官方答案因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。IO多路复用技术redis采用网络IO多路复用技术来保证在多连接的
Wesley13 Wesley13
3年前
mysql三种锁
不使用索引CREATETABLEtest1(idint(11)DEFAULTNULL,namevarchar(255)DEFAULTNULL)ENGINEInnoDBDEFAULTCHARSETutf8;!(https://osc
Wesley13 Wesley13
3年前
Java并发处理锁 Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java5之后,在 java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面
Stella981 Stella981
3年前
Redis单实例数据迁移到集群
迁移步骤:(1)停掉项目,停止对redis单实例的数据写入。(2)登录单实例redis客户端通过命令keys\查看当前单实例缓存的所有数据条数,记录下来。(3)假如单实例redis同时开启了RDB和AOF,只要AOF文件就可以了,因为当AOF和RDB同时存在的时候,Redis还是会先加载AOF文件的,在单实例redis上执行BGREW
Wesley13 Wesley13
3年前
Mysql MyISAM与InnoDB 表锁行锁以及分库分表优化
<divclass'title\_1'一、两种存储引擎:MyISAM与InnoDB区别与作用</div1.count运算上的区别:因为MyISAM缓存有表metadata(行数等),因此在做COUNT(\)时对于一个结构很好的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。2.是否支持事务和崩溃后
Wesley13 Wesley13
3年前
go并发基础数据加锁解锁
packagemain//go携程共享数据//加锁解锁操作//同步锁import("sync""fmt")funccomputed(dataint,locksync.Mutex){lock.Lock()//加锁霸占
Wesley13 Wesley13
3年前
CAS机制与自旋锁
CAS(CompareandSwap),即比较并替换,java并发包中许多Atomic的类的底层原理都是CAS。它的功能是判断内存中某个地址的值是否为预期值,如果是就改变成新值,整个过程具有原子性。具体体现于sun.misc.Unsafe类中的native方法,调用这些native方法,JVM会帮我们实现汇编指令,这些指令是CPU的原子指令,因此
Wesley13 Wesley13
3年前
Mysql读写锁及事务
读写锁同一用户并发读取同一条数据,不会出现什么问题,因为读取不会修改数据,但是如果某个用户正在读取某张表,而同一时刻另一用户正在修改这张表的id为1的数据,会产生什么后果?答案是不确定的,读的用户可能会报错退出,也可能读到不一致的数据。 解决这类经典问题的就是并发控制。在处理并发读写的时候,可以通过实现一个由两种类型的锁组成锁系统来解决问题。
子非鱼 子非鱼
3年前
Redis高级
第一章Redis的持久化由于redis是一个内存数据库,所有的数据都是保存在内存当中的,内存当中的数据极易丢失,所以redis的数据持久化就显得尤为重要,在redis当中,提供了两种数据持久化的方式,分别为RDB以及AOF,且Redis默认开启的数据持久化方式为RDB方式。1、RDB持久化方案Redis会定期保存数据快照至一个rbd文件中,并在启动时自动