缓存
memcached过期策略
1、memcached的过期时间,有一个最大时限就是30天,若超过30天,存储时返回true,但是在取数据的时候取不到(这个key是1秒后过期的)。 2、memcached的缓存失效策略是LRU(最近最少使用)加上到期失效策略。当向memcached存储数据时,你可能会设置一个过期时间,可以是永久也可以是一段时间,但是 ...
单线程的 Redis 为什么这么快?
前言 Redis是基于内存运行的高性能 K-V 数据库,官方提供的测试报告是单机可以支持约10w/s的QPS。 但是,在设计上,Redis 采用单线程架构。 为什么单线程设计依然会有这么高的性能?如果利用多线程并发处理请求不是更好吗? 在本文中,让我们深入探讨为什么 Redis 只有单线程架构,依然如此之快,主要从下面 ...
清缓存要放到事务外部
对于数据库操作之后的清缓存要放到数据库事务外部 若事务未提交之前清了缓存,在清缓存到事务提交这段时间内,若其他的方重新生成缓存,会生成老数据的缓存 因此若需要清缓存一定要在事务提交之后。 ...
使用 redis 实时统计 QPS
可以利用Redis, 每次访问时添加一个Redis操作 incr Ymdhis 将键名 Ymdhis 过期时间设置为1s EXPIRE Ymdhis 1 需要查看 QPS 时,查看 Ymdhis 值即可 get Ymdhis ...
单节点 Redis 分布式锁介绍
分布式锁 分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。 分布式锁需要具备的特性 互斥性:在任意一个时刻,只有一个客户端可以获取锁。 无死锁:即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保 ...
Redis 禁用O(n) 复杂度方法
某公司技术部发生2起本年度PO级特大事故,造成公司资金损失400万,原因如下: 由于工程师直接操作上线redis,执行: keys * wxdb(此处省略)cf8* 这样的命令,导致redis锁住,导致CPU飙升,引起所有支付链路卡住,等十几秒结束后,所有的请求流量全部挤压到了rds数据库中,使数据库产生了雪崩效应,发 ...
Redis 数据过期策略
对于过期策略,一般有三种可能: 定时删除:在设置键的过期时间时,创建一个定时事件,当过期时间到达时,由事件处理器自动执行键的删除操作。 惰性删除:放任键过期不管,但是在每次从 dict 字典中取出键值时,要检查键是否过期,如果过期的话,就删除它,并返回空;如果没过期,就返回键值。 定期删除:每隔一段时间,对 expi ...
Redis 配置认证密码方法
redis配置密码 1.通过配置文件进行配置 redis配置文件通常在redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件 requirepass myredispassword 重启redis 这个时候尝试登录redis,发现可以登上, ...
Redis 主从模式介绍
slave默认是只读的,可以通过修改 slave-read-only 设置 如果你以前做过MySQL主从服务器的话,两相对比,你会发现Redis主从服务器不用做前期的数据同步,设置好了从服务器,简单启动就OK了。 当Slave启动后,会从Master进行一次冷启动数据同步,由Master触发BGSAVE生成RDB文件 ...
Redis 持久化介绍
redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。 redis支持四种持久化方式, 一是 Snapshotting(快照)也是默认方式; 二是Appendonlyfile(缩写aof)的方式; 三是虚拟内存方式; 四是diskstore方式。 主要用 ...