单线程的 Redis 为什么这么快?

logo 382 2023-02-17

前言 Redis是基于内存运行的高性能 K-V 数据库,官方提供的测试报告是单机可以支持约10w/s的QPS。 但是,在设计上,Redis 采用单线程架构。 为什么单线程设计依然会有这么高的性能?如果利用多线程并发处理请求不是更好吗? 在本文中,让我们深入探讨为什么 Redis 只有单线程架构,依然如此之快,主要从下面 ...

详情...

实时统计 QPS

logo 112 2022-02-21

可以利用Redis, 每次访问时添加一个Redis操作 incr Ymdhis 将键名 Ymdhis 过期时间设置为1s EXPIRE Ymdhis 1 需要查看 QPS 时,查看 Ymdhis 值即可 get Ymdhis ...

详情...

单节点 Redis 分布式锁介绍

logo 132 2022-01-15

分布式锁 分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。 分布式锁需要具备的特性 互斥性:在任意一个时刻,只有一个客户端可以获取锁。 无死锁:即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保 ...

详情...

Redis 禁用O(n) 复杂度方法

logo 265 2022-01-15

某公司技术部发生2起本年度PO级特大事故,造成公司资金损失400万,原因如下: 由于工程师直接操作上线redis,执行: keys * wxdb(此处省略)cf8* 这样的命令,导致redis锁住,导致CPU飙升,引起所有支付链路卡住,等十几秒结束后,所有的请求流量全部挤压到了rds数据库中,使数据库产生了雪崩效应,发 ...

详情...

Redis 数据过期策略

logo 368 2022-01-15

对于过期策略,一般有三种可能: 定时删除:在设置键的过期时间时,创建一个定时事件,当过期时间到达时,由事件处理器自动执行键的删除操作。 惰性删除:放任键过期不管,但是在每次从 dict 字典中取出键值时,要检查键是否过期,如果过期的话,就删除它,并返回空;如果没过期,就返回键值。 定期删除:每隔一段时间,对 expi ...

详情...

Redis 配置认证密码方法

logo 275 2022-01-15

redis配置密码 1.通过配置文件进行配置 redis配置文件通常在redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件 requirepass myredispassword 重启redis 这个时候尝试登录redis,发现可以登上, ...

详情...

Redis 主从模式介绍

logo 86 2022-01-15

slave默认是只读的,可以通过修改 slave-read-only 设置 如果你以前做过MySQL主从服务器的话,两相对比,你会发现Redis主从服务器不用做前期的数据同步,设置好了从服务器,简单启动就OK了。 当Slave启动后,会从Master进行一次冷启动数据同步,由Master触发BGSAVE生成RDB文件 ...

详情...

Redis 持久化介绍

logo 275 2022-01-15

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。 redis支持四种持久化方式, 一是 Snapshotting(快照)也是默认方式; 二是Appendonlyfile(缩写aof)的方式; 三是虚拟内存方式; 四是diskstore方式。 主要用 ...

详情...

Redis 启动时的三个警告解决方法

logo 125 2022-01-15

问题 在Linux系统中安装完redis,启动时可能会出现如下三个警告: 第一个警告: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of ...

详情...

redis 监听执行日志的方法

logo 132 2022-01-15

执行 monitor 命令 redis 可以使用 monitor 命令实时查看日志 $ ./redis-cli 127.0.0.1:6379> auth 密码 OK # 日志监听命令 127.0.0.1:6379> monitor OK 接下来就会打印命令执行日志 1642219274.088122 ...

详情...

Redis 重启命令

logo 188 2022-01-15

对于 apt-get 或者 yum install 安装的 redis 如果是用 apt-get 或者 yum install 安装的 redis,可以直接通过下面的命令停止/启动/重启 redis /etc/init.d/redis-server stop /etc/init.d/redis-server sta ...

详情...

Redis 配置错误日志、慢日志方法

logo 328 2022-01-15

启动、错误日志 日志级别 Redis 总共支持四个级别:debug、verbose、notice、warning debug:会打印生成大量信息,适用于开发/测试阶段 verbose:包含很多不太有用的信息,但是不像debug级别那么混乱 notice:适度冗长,适用于生产环境 warning:仅记录非常重要、关键的警 ...

详情...