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 慢查询 什么是慢查询 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,大家可能第一反应就是它是当前最受欢迎的 NoSQL 数据库之一。...Redis 特点 Redis 是一个高性能的开源的 key-value 数据库,底层由 C 语言实现,相比于其他同类型产品,有如下特点。.../redis-server.exe 打开另一个窗口,在 Redis 目录下运行另一个 Redis,然后进行设置和取出键值对测试; ..../redis-cli # 解决乱码的启动方式 ....主要介绍了 NoSQL 的相关知识,接着引入 Redis 的特点、优点、应用场景、和其他同类型数据库的区别、然后介绍 Redis 的安装以及安装过程中需要注意的事项,最后则是对 Redis 在日常使用时使用最频繁的一些命令进行了说明
redis 持久化 什么是持久化 redis 将所有数据保持在内存中,对数据的更新将异步地保存在磁盘中 持久化的方式 1. 快照 快照是某时某刻对数据的完整备份。...在: MySQL Dump Redis RDB 被使用。 2....在: MySQL Binlog Hbase HLog Redis AOF 被使用。
redis 发布订阅 发布订阅模式中的角色 发布者(publisher) 订阅者(subscriber) 频道(channel) 如图所示: 发布者发布消息到频道,订阅了频道的订阅者可以收到消息,订阅者可以订阅不同的频道...通信模型 RedisServer中可以创建若干channel 一个订阅者可以订阅多个channel 当发布者向一个频道中发布一条消息时,所有的订阅者都将会收到消息 Redis的发布订阅模型没有消息积压功能
管理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 支持命令行工具 ,也支持多种编程语言。
DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统,他为VMWare 公司工作,主要就是进行Redis的开发。 ...一、redis启动初探 http://pauladamsmith.com/blog/2011/03/redis_get_set.html 原文 redis 启动图 ? ...会话数据 redis请求处理模型: ?...三、redis源码分析 (1)redis replication (http://www.hoterran.info/redis_replication) (2)redis 持久化(http://www.hoterran.info.../redis_persistence) redis有全量(save/bgsave)和增量(aof)的持久化命令。
哨兵模式是一种特殊的模式,首先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支持的数据结构、很多应用场景等。基本可以做到在工作中的适当情况下应用Redis。 ?...Redis入门指南(2) 安装与配置 Mac上默认安装了redis,目前是3.2版本,通过redis-server命令启动redis。...实际开发中会发现很难为缓存设置合理的过期时间,因此可以限制Redis能够使用的最大内存,并让Redis按照一定的规则淘汰不需要的缓存键。...Redis中的管道,通过减少客户端与Redis的通信次数来提高吞吐量。...Redis允许同时开启RDB和AOF。 哨兵 在一个典型的一主多从的Redis系统中,从数据库在整个系统中起到了数据冗余备份和读写分离的作用。
Redis 发布订阅 (pub/sub) Redis 事务 Redis 脚本 Redis连接 Redis服务器 Redis GEO Redis Stream Redis 发布订阅 Redis 发布订阅...Redis 脚本 Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。...Redis 连接 Redis 连接命令主要是用于连接 redis 服务。...服务器 Redis 服务器命令主要是用于管理 redis 服务。...Redis Stream Redis Stream 主要用于消息队列(MQ,Message Queue),Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化
如果你的redis是主redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素。...实现 7.1 Golang Redis https://github.com/go-redis/redis If you are using Redis 6, install go-redis/v8:...go-redis/redis/v9 7.1.1 连接redis package main import ( "context" "fmt" "github.com/go-redis/redis/...服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis数据库索引(默认为0) spring.redis.database...Redis持久化之RDB 11. Redis持久化之AOF 12. 主从复制 13. Redis集群 14.
领取专属 10元无门槛券
手把手带您无忧上云