要想重启后依然生效,得修改配置文件[root@m2 tmp]# grep slave-read-only redisnew.confslave-read-only no[root@m2 tmp]# ----连接认证redis requirepass 配置一下简单的认证127.0.0.1:6379> CONFIG GET requ*1) "requirepass"2) ""127.0.0.1:6379> exit[root@m1 ~]# redis-cli
redis 慢查询 什么是慢查询 MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里。 redis 的生命周期 客户端向Redis服务器发送命令 命令请求在请求队列中排队等待处理 执行命令 返回命令结果 ? redis 慢查询 慢查询发生在生命周期的第三阶段,是指仅仅执行命令阶段比较慢被称为慢查询。 客户端超时不一定是慢查询,但是慢查询时是客户端超时的一个可能因素。 redis 慢查询相关配置 1. slowlog-max-len 它决定了慢查询日志最多能保存多少条日志,slow log本身是一个内存中的FIFO队列,当队列大小超过slowlog-max-len时, 获取慢查询列表中的慢查询信息 2. slowlog len 含义:获取慢查询队列长度 slowlog reset 含义:清空慢查询队列 慢查询运维经验 slowlog-max-len 不要设置过大,默认10ms
redis链接工具 今天推荐一款redis链接工具,其实世面上连接redis的工具很多,但是好用的很少。例如:redis-desktop-manager这款工具也不错,但是我个人不能使用,因为收费。 废话少说,今天介绍一款Another Redis Desktop Manager链接工具,免费。
为了实现重启后数据不丢失,Redis提供了两种持久化的方案,一种是RDB快照(RedisDataBase),一种是AOF(AppendOnlyFile)。 RDB RDB是Redis默认的持久化方案。 save 900 1 // 900秒内至少有一个key被修改(包括添加) save 300 10 //400秒内至少有10个key被修改 save 60 10000 //60秒内至少有10000个key Redis提供了两条命令: 命令 说明 save save在生成快照的时候会阻塞当前Redis服务器,Redis不能处理其他命令。如果内存中的数据比较多,会造成Redis长时间的阻塞。 为了解决这个问题,Redis新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集。 如果是no,用户必须手动redis-check-aof修复AOF文件才可以。默认值为yes。 AOF数据恢复 重启Redis之后就会进行AOF文件的恢复。
Redis的操作命令 1 基础命令 获得符合规则的键名称 keys 表达式(?,* ,[],\?)。 其中,?:匹配任意一个字符;*:匹配0个或者多个任意字符;[]:匹配括号间的任一字符;\? exists key 删除键 del key del key1 key2 获得键值的数据类型type 返回值可能是这五种类型(string,hash,list,set,sorted set) 注意:Redis
redis是NOSQL数据库,所以也存在事务,只是此事务和关系型数据库的事务是有区别的。 事务实例 Redis中事务的使用其实非常简单,通过MULTI命令即可。 如下 127.0.0.1:6379> exec 1) OK 2) OK 3) OK 4) OK 5) "bbb" 事务异常 事务中的异常有两种情况: 进入队列之前发生错误 比较常见的命令错误,此类异常redis (error) ERR syntax error # 执行命令的时候错误提示 4) OK 127.0.0.1:6379> keys kk* 1) "kk1" 2) "kk2" 3) "kk4" 注意 redis 执行exec命令后发生的异常 对于这种情况,redis中也不会做特别的处理。 因为不需要对回滚进行支持,所以 Redis 的内部可以保持简单且快速 Watch watch命令可以监控一个或多个键,一旦其中有一个键被修改(或删除),之后的事务就不会执行。
; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig ; /** * Redis工具类 * 调用格式:RedisUtil.getRu().方法 */ public class RedisUtil { private static ru = new RedisUtil(); private RedisUtil() { if (pool == null) { //redis 服务器IP String ip = SysConfigUtil.getByKey("redis.ip") ; //redis服务器端口 int port = Integer.parseInt(SysConfigUtil.getByKey("redis.port")); JedisPoolConfig config
我就不介绍Redis是什么了。 (一个月前写的工具类,一直忘记分享了,算是比较全的Java-Redis工具类) 直接上代码吧。 先给出在spring 中配置Redis的代码。 * Date: 2017/4/10. * Time: 上午 12:11. * Date: 2017/4/10. * Time: 上午 12:51. * Explain: Redis的工具类 * 增删改 -不能在这里面抓取异常 -因为可能有事务处理 */ @Component public class RedisHandle implements 操作工具类,基本上可以满足你操纵Redis的绝大多数需要了。
Redis的作用和应用场景包括: 缓存:Redis可以作为缓存来加速读取频繁的数据,在访问数据库之前将数据存储在Redis中,从而加快数据的响应速度。 :10, "Password":"Admin123", "Port":6379 }] } 3.使用 using DeveloperSharp.Redis; -------------- 实现手写Redis连接库是一个复杂的过程,需要了解Redis协议以及如何通过套接字与Redis服务器通信。 这些命令需要遵循Redis协议,具体可以参考Redis官方文档中的协议描述。 如果你想在C#中使用Redis,我建议使用第三方现有的客户端库,它们已经实现了完整的Redis协议和其他功能
文章目录 概述 场景一: 命令格正确,数据类型错误 场景二:命令格式错误 总结 概述 对于 Redis 而言,不单单需要注意其事务处理的过程,其回滚的能力也和数据库不太一样,这也是需要特别注意的一个问题一 Redis 事务遇到的命令格式正确而数据类型不符合 ,如下所示。 ---- 总结 通过上面两个例子,可以看出Redis在执行事务命令的时候,在命令入队的时候, Redis 就会检测事务的命令是否正确,如果不正确则会产生错误。 对于一些重要的操作,我们必须通过程序去检测数据的正确性,以保证 Redis 事务的正确执行,避免出现数据不一致的情况。 Redis 之所以保持这样简易的事务,完全是为了保证移动互联网的核心问题一----性能。
Redis进阶学习10---redis最佳实践 Redis最佳实践 优雅的key结构 BigKey问题 BigKey的危害 如何发现BigKeys 如何删除bigKeys 恰当的数据类型 小总结 批处理优化 memory usage key,该命令可以查看某个key加其value占用内存大小,但是由于该命令比较消耗cpu资源,因此不太推荐使用 推荐值: 单个key的value小于10KB 对于集合类型的 cursor.equals("0")); } 第三方工具 利用第三方工具,如 Redis-Rdb-Tools 分析RDB快照文件,全面分析内存使用情况 网络监控 自定义工具,监控进出Redis 默认是10000,建议1000 Redis一般命令执行时间都在几十微妙左右,而默认慢查询阈值为10毫秒,建议改小一点 慢查询会被放入慢查询日志中,日志的长度有上限,可以通过配置指定: slowlog-max-len 每次Ping携带的信息至少包括: 插槽信息 集群状态信息 集群中节点越多,集群状态信息数据量也越大,10个节点的相关信息可能达到1kb,此时每次集群互通需要的带宽会非常高。
source-key列表中弹出位于最右端 元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素,如果source-key 为空,那么在timeout秒之内阻塞并等特可弹出的元素出现 在Redis 压缩列表):当列表的元素个数小于list-max-ziplist-entries配置 (默认512个),同时列表中每个元素的值都小于list-max-ziplist-value配置时 (默认64字节),Redis 会选用ziplist来作为列表的内部实现来减少内存的使 用 linkedlist(链表):当列表类型无法满足ziplist的条件时,Redis会使用 linkedlist作为列表的内部实现。 四、使用场景 ①消息队列 如下图所示,Redis的lpush+brpop命令组合即可实现阻塞队列,生产者客户端使用lrpush从列表左侧插入元素,多个消费者客户端使用brpop命令阻塞式的“抢”列表尾部的元素 user:1:acticles article:1 article3...lpush user:k:acticles article:5... ③分页获取用户文章列表,例如下面伪代码获取用户id=1的前10
目录 写在前面 一、安装环境 二、下载windows版本的Redis 三、安装Redis 四、安装服务 五、启动服务 六、测试Redis 七、常用的Redis服务。 一、安装环境 ---- 安装环境:Win 10 家庭版 二、下载windows版本的Redis ---- 官网:http://redis.io/download github:https://github.com 三、安装Redis ---- 下载Redis-x64-3.2.100.zip版本,解压到C:/Pulgs/Redis目录 启动cmd 输入命令 redis-server redis.windows.conf 四、安装服务 输入命令:redis-server --service-install redis.windows.conf ? 回车,如下图所示: ? 查看在本地的服务。是否成功加入Redis。 七、常用的Redis服务。
下载 github上下载最新(或者你需要的版本)的redis安装包,下载地址如下: https://github.com/microsoftarchive/redis/releases 打开点击版本号, 这里需要对不太熟悉redis的同学说明一下 windows 版的redis是由微软官网维护并发布的,所以版本和 https://github.com/antirez/redis 仓库的原版 redis 会不太一样,我写这篇博客的时候,redis官方最新版本是5.0.6。 对文件进行一个说明: Redis-x64-3.2.100.msi :图形化安装文件 Redis-x64-3.2.100.zip :压缩文件安装包,需要解压安装 Redis-x64-3.2.100.zip 可以使用rdm等redis图形化管理界面连接redis并测试添加删除数据,默认是没有密码的,如果需要设置密码,可以在安装目录下的配置文件里设置。 ?
Redis压测工具(redis-benchmark) 目录 1、简介 2、参数 3、操作 1、简介 Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求 Redis下载地址: https://redis.io/download 2、参数 redis-benchmark工具存放在Redis的src目录下。 使用 redis-benchmark -h 命令来查看使用参数 redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests] 对127.0.0.1使用20个并行客户端,总共10万个请求 ./redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 20 -q 使用直接命令来运行 . /redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -r 100000 -n 100000 -q 压测阿里云上的Redis .
一 简介 Redis Input/Output Tools (RIOT) 工具是一款支持 Redis 和文件,数据库之间进行数据同步的工具,支持全量和增量同步。 RIOT 工具的增量功能是基于 Redis 的键空间消息提醒(keyspace notification)功能,通过监听 源数据库的键值数据变化事件并解析该事件为对应的命令动作,在目标端执行该命令,以便达到增量迁移 /riot --help 2.3 迁移命令 RIOT 工具支持 Redis 到 Redis ,文件和 Redis, 数据库和 Redis 之间进行数据同步迁移,本文只基于 Redis 之间的数据迁移功能 log 三 迁移测试 SET name aliyun_poc MSET key1 value1 key2 value2 SET number 0 INCR number INCRBY number 10 DECR number DECRBY number 10 LPUSH k1 v1 k2 v2 k3 v3 HMSET uid:1 name Tom age 15 HMSET uid:2 name Jerry
为了便于给公司的研发查询redis数据,github上找到一个不错的项目 https://github.com/andyzsf/PyRedisAdmin 默认是不带登录账号控制和可以修改数据的,我们上生产前做了些改动 : 1、默认不带登录鉴权功能(改进:在前面接一道nginx或者其它支持统一登录的工具) 2、默认可以修改数据(改进:去掉代码中 delete modify 等接口) 修改起来很简答,这里就不贴了。
java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import org.springframework.data.redis.core.RedisTemplate ; import org.springframework.stereotype.Component; /** * 说明:Redis工具类 * 作者:FH Admin * from.fhadmin.cn
基于StringRedisTemplate封装一个缓存工具类,满足下列需求: 方法1:将任意Java对象序列化为json并存储在string类型的key中,并且可以设置TTL过期时间 方法2:将任意Java stringRedisTemplate; private static final ExecutorService CACHE_REBUILD_EXECUTOR = Executors.newFixedThreadPool(10 redisData.setExpireTime(LocalDateTime.now().plusSeconds(unit.toSeconds(time))); // 写入Redis R r = dbFallback.apply(id); // 5.不存在,返回错误 if (r == null) { // 将空值写入redis tryLock(String key) { Boolean flag = stringRedisTemplate.opsForValue().setIfAbsent(key, "1", 10
[i]首页我先把redis的密码设置为:123456 redis 127.0.0.1:6379> CONFIG SET requirepass 123456 OK redis 127.0.0.1 :6379> AUTH 123456 Ok[/i] [i]该可视化工具github地址[url]https://github.com/caoxinyu/RedisClient[/url][/i] http://dl2.iteye.com/upload/attachment/0118/4390/829adfe5-43eb-3989-a3d2-bef47a33a114.png[/img] 注意:redis