redis的过期键删除策略 redis使用了惰性删除和定期删除两种方式。 惰性实现在db.c/expireIfNeeded()中。...redis的定期删除策略 redis会定期执行过期键删除,定期删除函数在expire.c/activeExpireCycle(int),这个函数有两个地方调用,一个是server.c/databasesCron...如果是ACTIVE_EXPIRE_CYCLE_SLOW类型,redis会以正常的过期周期进行清理,时间周期是REDIS_HZ的一个百分比,由ACTIVE_EXPIRE_CYCLE_SLOW_TIME_PERC...这些只是一些系统默认的常量,redis给了我们一个额外的参数effort,让我们去修改上面这些默认变量。...effort变量由redis.conf中的active-expire-effort控制,1到10,设置越大cpu的消耗也会相应增加。
yum安装redis 1.yum安装 #前提得配置好阿里云yum源,epel源 #查看是否有redis包 yum list redis #安装redis yum install redis -y #安装好...,启动redis systemctl start redis 2.检测redis是否工作 redis-cli #redis 客户端工具 #进入交互式环境后,执行ping,返回pong表示安装成功...127.0.0.1:6379> ping PONG 源码安装redis,编译安装 大家用过yum,是相当省事好用吧,为什么还要学习源码安装?.../redis-cli //redis的客户端 ./redis-server //redis的服务端 ./redis-check-aof //用于修复出问题的AOF文件 ..../redis-sentinel //用于集群管理 启动redis服务端 启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件: .
Redis 1、为什么使用Redis数据库 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。...原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。...丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis学习 应用场景 Token令牌的生成 短信验证码的code 可以实现缓存数据的查询 帮助实现计数器 分布式锁 延迟操作(对key做时间监听,多长时间过期) 分布式消息中间件 Redis数据类型...List类型 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 集合(Set) Redis 的 Set 是 String 类型的无序集合。...Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。...MySQL与Redis一致性问题 直接清除Redis的缓存,重新读取数据库 使用mq异步订阅mysql binlog实现增量同步 使用alibaba的canal 缓存击穿 热点key过期(或者没有被缓存的...) 数据库有 大量的并发redis没有缓存 过缓存穿透 解决方案 对服务接口api实现限流、用户授权、黑名单和白名单拦截; 从缓存和数据库都查询不到结果的话,一样将数据库空值结果缓存到redis中;
redis pipeline 什么是流水线(pipeline) 首先来看 redis 执行一次操作所需要的时间: 1 次时间 = 1 次网络时间 + 1次命令时间 ?...对比如下: M操作在Redis队列中是一个原子操作,pipeline不是原子操作 pipeline与M操作都会将数据顺序的传送顺序地返回(redis 单线程) M 操作一个命令对应多个键值对,而Pipeline...是多条命令 pipeline注意事项 每次pipeline携带数量不推荐过大,否则会影响网络性能 pipeline每次只能作用在一个Redis节点上 pipeline-Jedis使用 Maven 依赖... redis.clients jedis 2.9.0
一般情况下,redis占用内存超过20GB以上的时候,必须考虑主从多redis实例进行数据同步和备份保证可用性。 rbd保存的文件都是 dump.rdb,都是配置文件当中的快照配置进行生成的。...默认情况:RDB,AOF需要手动开启 redis.conf持久化配置说明 在redis.conf文件当中,存在如下的选项: redis.conf当中RDB的相关配置 #是否开启rdb压缩 默认开启...redis通过shutdown命令关闭服务器请求的时候,此时redis会停下所有工作执行一次save,阻塞所有客户端不再执行任何命令并且进行磁盘写入,写入完成关闭服务器。...修复速度慢一些 存在未知的bug,比如如果重写aof文件的时候突然中断,会有很多奇怪的现象 如何检查redis的性能瓶颈: redis-benchmark 官方推荐的性能测试工具,非常强大,具体的地址为...:https://www.runoob.com/redis/redis-benchmarks.html Redis-cli中调用slowlog get,作用是返回执行时间超过redis.conf中定义的持续时间的命令列表
,计时器 等等 Redis 有啥特性 多样的数据类型 持久化 集群 事务处理 学习 Redis 需要用到的资料 官网:https://redis.io/ 中文网站:http://www.redis.cn.../ 下载地址: 如何安装 Redis window 下安装 Redis 1、官网上下载 windows Redis 的安装包:https://github.com/tporadowski/redis/...服务端 redis-client redis 客户端 redis-check-aof 和 redis-check-rdb redis 的持久化工具 redis-benchmark redis 的检测工具...:/# redis-server /usr/local/redis/redis-6.2.5/redis.conf root@iZuf66y3tuzn4wp3h02t7pZ:/# redis-cli -p...redis 默认是有 16 个数据库的,咱们可以查看 redis.conf 文件中有定义 # vim /usr/local/redis/redis-6.2.5/redis.conf redis 默认是使用第
前言 说到 Redis,大家可能第一反应就是它是当前最受欢迎的 NoSQL 数据库之一。...Redis 特点 Redis 是一个高性能的开源的 key-value 数据库,底层由 C 语言实现,相比于其他同类型产品,有如下特点。.../redis-server.exe 打开另一个窗口,在 Redis 目录下运行另一个 Redis,然后进行设置和取出键值对测试; ..../redis-cli # 解决乱码的启动方式 ....主要介绍了 NoSQL 的相关知识,接着引入 Redis 的特点、优点、应用场景、和其他同类型数据库的区别、然后介绍 Redis 的安装以及安装过程中需要注意的事项,最后则是对 Redis 在日常使用时使用最频繁的一些命令进行了说明
redis 慢查询 什么是慢查询 MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里。...redis 的生命周期 客户端向Redis服务器发送命令 命令请求在请求队列中排队等待处理 执行命令 返回命令结果 ?...redis 慢查询 慢查询发生在生命周期的第三阶段,是指仅仅执行命令阶段比较慢被称为慢查询。 客户端超时不一定是慢查询,但是慢查询时是客户端超时的一个可能因素。...redis 慢查询相关配置 1. slowlog-max-len 它决定了慢查询日志最多能保存多少条日志,slow log本身是一个内存中的FIFO队列,当队列大小超过slowlog-max-len时,...slowlog len 含义:获取慢查询队列长度 slowlog reset 含义:清空慢查询队列 慢查询运维经验 slowlog-max-len 不要设置过大,默认10ms,通常设置1ms 因为Redis
redis 发布订阅 发布订阅模式中的角色 发布者(publisher) 订阅者(subscriber) 频道(channel) 如图所示: 发布者发布消息到频道,订阅了频道的订阅者可以收到消息,订阅者可以订阅不同的频道...通信模型 RedisServer中可以创建若干channel 一个订阅者可以订阅多个channel 当发布者向一个频道中发布一条消息时,所有的订阅者都将会收到消息 Redis的发布订阅模型没有消息积压功能
redis 持久化 什么是持久化 redis 将所有数据保持在内存中,对数据的更新将异步地保存在磁盘中 持久化的方式 1. 快照 快照是某时某刻对数据的完整备份。...在: MySQL Dump Redis RDB 被使用。 2....在: MySQL Binlog Hbase HLog Redis AOF 被使用。
管理Redis 1.1 config 指令 除了通过 redis.conf 文件对 Redis 进行配置外,我们还可以通过 config set 命令来个别值进行设置 config set slowlog-log-slower-than...通过使用 requirepass 设置 (用 redis.conf 文件或者 config set 命令)。...1.3 复制 ( Replication ) Redis 支持复制,意思是说,当你把数据写到一个 Redis 实例(主服务)上的时候,一个或者多个实例(从服务)将会保持和主服务同步更新。...1.4 备份(Backups) 备份 Redis 只需要简单的将 Redis 的快照拷贝到你想要的地方。默认的,Redis 把它的快照保存在名为 dump.rdb 的文件中。...1.5 扩展和 Redis 集群(Scaling and Redis Cluster) 复制是那些负荷高速成长的网站用到的第一个工具。
一 Redis Java客户端介绍 Redis Java客户端有很多的开源产品比如Redission、Jedis、lettuce Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis...连接实例 2)、用获取的redis连接实例执行clusterNodes()方法,实际执行redis服务端cluster nodes命令,获取主从配置信息 3)、解析主从配置信息,先把所有节点存放到nodes...addNodeAddress("redis://192.168.11.153:7000", "redis://192.168.11.153:7001", "redis:/...,而这个范围就是Redis本身。...所以我们才需要把锁构建到Redis中。
Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。...Redis 安装(Linux) 1.安装命令 wget http://download.redis.io/releases/redis-3.0.3.tar.gz tar -xzf redis-3.0.7....tar.gz ln -s redis-3.0.7 redis cd redis make && make install 2....Redis 可执行文件说明 redis-server - Redis 服务器 redis-cli - Redis 命令行客户端 redis-benchmark - Redis 性能测试工具 redis-check-aof...- AOF文件修复工具 redis-check-dump - RDB文件检查工具 redis-sentinel - Sentinel 服务器(2.8以后) Redis 启动 1.最简启动 命令: redis-server
Redis 是一种内存数据,它很快,常常作为缓存使用,理解 redis 的关键是要理解它的多种数据结构。 1. Redis 简介 ?...运行Redis时使用: $ src/redis-server 您可以使用 内置客户端 redis-cli 与Redis交互: $ src/redis-cli redis> set foo bar OK...redis> get foo "bar" 2.2 重要的组成部分: redis-server:Redis服务器程序 redis-cli:Redis客户端程序,它是一个命令行操作工具。...redis-benchmark:Redis性能测试工具,测试Redis在你的系统及配置下的读写性能。.../src/redis-cli shutdown 2.6 Redis 驱动 redis 支持命令行工具 ,也支持多种编程语言。
memcahce一个键最多存储1M数据,redis的键最多存储1G数据 2. macos安装redis $ brew install redis 安装完成后 /usr/local/Cellar/redis.../4.0.11/bin 下的几个命令: redis-benchmark 性能测试命令 redis-check-aof / redis-check-rdb 日志检测工具 redis-server...yes 启动redis服务 $ redis-server /usr/local/etc/redis.conf 检查是否启动成功,6379端口 $ redis-cli ping 客户端连接redis服务...$ redis-cli -h localhost -p 6379 # 连接到本地直接输入连接命令即可 $ redis-cli 关闭redis服务 # 方法1 $ redis-cli shutdown...php $redis=new Redis(); $redis->connect('127.0.0.1',6379); // 下单前判断redis队列库存量 $count=
redis学习笔记 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email: sunjianfeng...memcahce一个键最多存储1M数据,redis的键最多存储1G数据 2. macos安装redis $ brew install redis 安装完成后 /usr/local/Cellar/redis.../4.0.11/bin 下的几个命令: redis-benchmark 性能测试命令 redis-check-aof / redis-check-rdb 日志检测工具 redis-server...yes 启动redis服务 $ redis-server /usr/local/etc/redis.conf 检查是否启动成功,6379端口 $ redis-cli ping 客户端连接redis服务...$ redis-cli -h localhost -p 6379 # 连接到本地直接输入连接命令即可 $ redis-cli 关闭redis服务 # 方法1 $ redis-cli shutdown
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独 立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。 ?.../redis.conf:/etc/redis/redis.conf -v /usr/local/database/redis/redis-cluster/sentinel.conf:/etc/redis.../sentinel.conf -d redis:6.0.5 redis-server /etc/redis/redis.conf --appendonly yes # 访问 redis-sentinel.../etc/redis/sentinel.conf # 启动哨兵 [root@centos8 redis-cluster]# docker exec -it 48f8725736c3 redis-sentinel.../etc/redis/sentinel.conf 测试 16:X 30 Jul 2020 07:34:06.679 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
Redis发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。微信、 微博、关注系统!...Redis 客户端可以订阅任意数量的频道。 订阅/发布消息图: 第一个:消息发送者, 第二个:频道 第三个:消息订阅者! ?...是使用C实现的,通过分析 Redis 源码里的 pubsub.c 文件,了解发布和订阅机制的底层实现,籍 此加深对 Redis 的理解。...Redis 通过 PUBLISH 、SUBSCRIBE 和 PSUBSCRIBE 等命令实现发布和订阅功能。...微信: 通过 SUBSCRIBE 命令订阅某频道后,redis-server 里维护了一个字典,字典的键就是一个个 频道!
无论是使用单线程模型还是多线程模型,都是为了更好地提升Redis的开发效率和运行性能。...哪怕我们在一个普通的 Linux 服务器上启动 Redis 服务,它也能在 1s 的时间内处理 1000000 个用户请求。...如果这种吞吐量不能满足我们的需求,更推荐的做法是使用分片的方式将不同的请求交给不同的 Redis 服务器来处理,而不是在同一个 Redis 服务中引入大量的多线程操作。...Redis 选择选择单线程模型处理客户端的请求主要还是因为CPU不是Redis服务器的瓶颈,所以使用多线程模型带来的性能提升并不能抵消它带来的开发成本和维护成本,系统的性能瓶颈也主要在网络I/O操作上;...而 Redis 引入多线程操作也是出于性能上的考虑,对于一些大键值对的删除操作,通过多线程非阻塞地释放内存空间也能减少对 Redis 主线程阻塞的时间,提高执行的效率。
领取专属 10元无门槛券
手把手带您无忧上云