摘要:
分布式锁想必大家并不陌生:控制分布式系统之间同步访问共享资源的一种方式。 如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 实现分布式锁的方式多种多样,但一般来说都是使用编码的方式在业 阅读全文
摘要:
在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。 解决方案 使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。 还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下,这样子增大了并发量,但是还是避免不了大量 阅读全文
摘要:
一、缓存穿透缓存穿透是指查询一个数据库一定不存在的数据。我们以前正常的使用Redis缓存的流程大致是:1、数据查询首先进行缓存查询2、如果数据存在则直接返回缓存数据3、如果数据不存在,就对数据库进行查询,并把查询到的数据放进缓存4、如果数据库查询数据为空,则不放进缓存例如我们的数据表中主键是自增产生 阅读全文
摘要:
一、主从复制Replicationredis支持主从复制的模式。在主从复制模式下Redis节点分为两种角色:主节点(也称为master)和从节点(也称为slave)。这种模式集群是由一个主节点和多个从节点构成。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Sl 阅读全文
摘要:
一、数据类型 字符串 hash(类似map) List(类似LinkedList) set(类似hashset) zset(类似有序的set)1、字符串string是redis最基本的类型,用的也是最多的,一个key对应一个value。 一个键最大能存储512MB2、hashRedis中hash 是 阅读全文
摘要:
Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。RDB持久化机制RDB持久化是指在指定的时 阅读全文
摘要:
目前基于Redis实现的分布式锁常用的框架是Redisson,它的使用比较简单,在项目中引入Redisson的依赖,然后基于Redis实现分布式锁的加锁与释放锁,如下所示: //获取锁 RLock lock = redisson.getLock("myLock"); //上锁 lock.lock() 阅读全文
摘要:
Redis是一个单线程的但性能是非常好的内存数据库,主要用来作为缓存系统。Redis采用网络IO多路复用技术来保证在多连接的时候,系统吞吐量高。1、为什么Redis要使用IO多路复用? 首先,Redis是跑在单线程中的,所有的操作都是顺序线性执行的,但是由于读写操作等待用户输入或者输出都是阻塞的,所 阅读全文