redis-cli

在 CentOS7 下安装、配置 Redis 服务

て烟熏妆下的殇ゞ 提交于 2019-12-04 05:41:08
官网: https://redis.io 下载: https://redis.io/download 1. 安装依赖 ➜ yum install -y gcc gcc-c++ kernel-devel 2. 下载源码包 # 推荐在这个目录存放各个软件的源码 ➜ cd /usr/local/src # 下载指定版本 ➜ wget http://download.redis.io/releases/redis-5.0.5.tar.gz # 下载最新稳定版 ➜ wget http://download.redis.io/redis-stable.tar.gz # 查看源码具体版本 ➜ cat redis-stable/src/version.h 3. 编译安装 ➜ tar zxvf redis-5.0.5.tar.gz ➜ cd redis-5.0.5 ➜ make # 安装到指定目录下 ➜ make PREFIX=/usr/local/redis install # 拷贝默认配置文件到指定目录 ➜ mkdir /usr/local/redis/etc/ ➜ cp redis.conf /usr/local/redis/etc/ # 拷贝可执行程序到系统目录下 ➜ cd /usr/local/redis/bin/ ➜ cp redis-benchmark redis-cli redis

redis监控客户端redis-cli

送分小仙女□ 提交于 2019-12-01 22:32:27
1、原生的监控视图 1)redis-cli --stat查看当前连接的客户端数,连接数等 2)redis-cli --bigkeys对当前占用内存最大的键值和平均的键值数据,也可以通过指定-i参数定时查看当前的视图情况。下图中为测试库,只对键值c做了操作,因此如下图中最大的键值为c 3)redis-cli --scan提供和keys *相似的功能,查看当前的键值情况,可以通过正则表达如 --pattern 'user:*' 进行键值的分析,并且配合shell命令进行相关的统计分析 2、Monitor命令及扩展监控框架 1)redis-cli monitor打印出所有sever接收到的命令以及其对应的客户端地址 2)RedisLive是基于python3实现的可视化监控界面 https://github.com/nkrode/RedisLive http://www.nkrode.com/article/real-time-dashboard-for-redis 3)redis-stat是基于ruby实现的可视化监控界面 https://github.com/junegunn/redis-stat 4)redis-faina是基于python2实现的可视化监控界面,监控100行命令 https://github.com/facebookarchive/redis-faina 参考资料

Redis 集群教程:入门级的Redis集群使用指南

浪子不回头ぞ 提交于 2019-11-30 19:42:53
Redis Cluster集群 传统Redis集群存在那些问题 Redis哨兵集群模式,每个节点都保存全量同步数据,冗余的数据比较多;而在Redis Cluster模式中集群中采用分片集群模式,可以减少冗余数据,缺点就是构建该集群模式成本非常高 RedisCluster集群数据分片原理 Redis 集群没有使用一致性hash, 而是引入了 哈希槽 的概念. Redis3.0开始官方推出了集群模式 RedisCluster,原理采用 hash槽的概念 ,预先分配16384个卡槽,并且将该卡槽分配给具体服务的节点;通过key进行 crc16(key)%16384 获取余数,余数就是对应的卡槽的位置,一个卡槽可以存放多个不同的key,从而将读或者写转发到该卡槽的服务的节点。 最大的有点: 动态扩容、缩容 。 传统RedisCluster集群模式环境搭建 摘要: 2018年10月 Redis 发布了最新稳定版本 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式 ,改为使用 C语言编写的 redis-cli的方式,使集群的构建方式复杂度大大降低 。 我们先来看一下redis-cluster架构图,如下图所示。可以看到Redis集群是没有统一入口的,采用的是 去中心化 设计思想,客户端连集群中的哪台设备都行,集群中各个设备之间都定时进行交互,以便知道节点是否还正常工作。

redis 持久化

北城以北 提交于 2019-11-30 18:39:01
介绍 首先,我们应该明确持久化的数据有什么用,答案是用于重启后的数据恢复。 Redis是一个内存数据库,无论是RDB还是AOF,都只是其保证数据恢复的措施。 所以Redis在利用RDB和AOF进行恢复的时候,都会读取RDB或AOF文件,重新加载到内存中。 Redis持久化的方式 RDB AOF RDB RDB就是Snapshot快照存储,是默认的持久化方式。 可理解为半持久化模式,即按照一定的策略周期性的将数据保存到磁盘。 对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。 下面是默认的快照设置: save 900 1 #当有一条Keys数据被改变时,900秒刷新到Disk一次 save 300 10 #当有10条Keys数据被改变时,300秒刷新到Disk一次 save 60 10000#当有10000条Keys数据被改变时,60秒刷新到Disk一次 Redis的RDB文件不会坏掉,因为其写操作是在一个新进程中进行的。 当生成一个新的RDB文件时,Redis生成的子进程会先将数据写到一个临时文件中,然后通过原子性rename系统调用将临时文件重命名为RDB文件。 这样在任何时候出现故障,Redis的RDB文件都总是可用的。 同时,Redis的RDB文件也是Redis主从同步内部实现中的一环。 第一次Slave向Master同步的实现是: *

Redis 相关功能和实用命令(五)

╄→гoц情女王★ 提交于 2019-11-30 18:07:55
慢查询原因分析 由于 Redis 是单线程的,它内部维护了一个命令队列,所以当有耗时的命令出现时,比如 keys * ,后面的命令会被阻塞,通查查出慢查询可以对服务进一步优化。 设置慢查询阀值:默认10 毫秒,以微秒为单位 6379>config set slowlog-log-slower-than 10000 可直接修改 redis.conf 加上 slowlog-log-slower-than 10000 slow-max-len 用来设置慢查询条数 执行 slowlog get 获取慢查询,格式如下 一般会定期将慢查询进行导出到 mysql 或其它存储,用于业务人员查看哪里出现了慢查询 管道 pipeline 上篇文章 展示了在控制台中如何使用管道来导入 mysql 数据 ,但管道一般在应用程序中使用 Object execute = redisTemplate.execute(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection connection) throws DataAccessException { connection.openPipeline(); for (int i = 0; i < 1000000; i++) { String key = "123

Redis 安装

旧城冷巷雨未停 提交于 2019-11-30 18:02:26
Window 下安装 下载地址: https://github.com/MSOpenTech/redis/releases 。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip 压缩包到 C 盘,解压后,将文件夹重新命名为 redis 。 打开文件夹,内容如下: 打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行: redis-server.exe redis.windows.conf 如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面: 这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。 切换到 redis 目录下运行: redis-cli.exe -h 127.0.0.1 -p 6379 设置键值对: set myKey abc 取出键值对: get myKey Linux 下安装 下载地址: http://redis.io/download ,下载最新稳定版本。 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/releases/redis-2

redis 持久化

陌路散爱 提交于 2019-11-30 17:58:53
介绍 首先,我们应该明确持久化的数据有什么用,答案是用于重启后的数据恢复。 Redis是一个内存数据库,无论是RDB还是AOF,都只是其保证数据恢复的措施。 所以Redis在利用RDB和AOF进行恢复的时候,都会读取RDB或AOF文件,重新加载到内存中。 Redis持久化的方式 RDB AOF RDB RDB就是Snapshot快照存储,是默认的持久化方式。 可理解为半持久化模式,即按照一定的策略周期性的将数据保存到磁盘。 对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。 下面是默认的快照设置: save 900 1 #当有一条Keys数据被改变时,900秒刷新到Disk一次 save 300 10 #当有10条Keys数据被改变时,300秒刷新到Disk一次 save 60 10000#当有10000条Keys数据被改变时,60秒刷新到Disk一次 Redis的RDB文件不会坏掉,因为其写操作是在一个新进程中进行的。 当生成一个新的RDB文件时,Redis生成的子进程会先将数据写到一个临时文件中,然后通过原子性rename系统调用将临时文件重命名为RDB文件。 这样在任何时候出现故障,Redis的RDB文件都总是可用的。 同时,Redis的RDB文件也是Redis主从同步内部实现中的一环。 第一次Slave向Master同步的实现是: *

[redis]mac上docker安装redis

强颜欢笑 提交于 2019-11-30 17:54:57
docker search redis docker pull redis NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source key-value store that… 7381 [OK] 下载完98.2M localhost:~ danni$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 01a52b3b5cd1 9 days ago 98.2MB docker run -p 6379:6379 -d redis:latest redis-server docker exec -it bf3 redis-cli docker exec -it bf3 redis-cli -h localhost -p 6379 https://www.cnblogs.com/zhzhlong/p/9465670.html redis-server在 /usr/local/bin redis修改密码: 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" 127.0.0.1:6379> config set requirepass "redis2019"

Redis 密码设置和查看密码

泄露秘密 提交于 2019-11-30 16:53:37
redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证。 1、初始化Redis密码: 在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数; 比如 requirepass test123; (Ps:需重启Redis才能生效) redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码;所以密码要尽量长(对于DBA 没有必要必须记住密码); 2、不重启Redis设置密码: 在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。 redis 127.0.0.1:6379> config set requirepass test123 查询密码: redis 127.0.0.1:6379> config get requirepass (error) ERR operation not permitted 密码验证: redis 127.0.0.1:6379> auth test123 OK 再次查询: redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "test123" PS:如果配置文件中没添加密码 那么redis重启后,密码失效; 3、登陆有密码的Redis:

导出 mysql 数据到 redis

淺唱寂寞╮ 提交于 2019-11-30 15:49:09
决定你要导入到 redis 的数据类型 假设我的表 t_user 的结构为 列名 注释 类型 name 名称 varchar idcard 身份证号 varchar phone 手机号 varchar 目前的需求为需要给手机号和身份证号做一个映射关系,那么我可以采用 string 类型,使用 set 命令设置数据 拼接 sql 转换成 redis 的 aof 数据格式 将下面的 sql 脚本保存成文件 user.sql SELECT CONCAT( "*3\r\n", '$',LENGTH(t.redis_cmd),'\r\n',t.redis_cmd,'\r\n', '$',LENGTH(t.skey),'\r\n',t.skey,'\r\n', '$',LENGTH(t.svalue),'\r\n',t.svalue,'\r' ) as redissql from ( SELECT 'set' as redis_cmd ,phone as skey ,idcar as svalue from t_user where name is not null and standno is not null ) t 注: NULL 数据是插入不进去的, NULL 数据要么过滤掉,要么替换成别的 恢复数据到 redis 执行 sql ,插入redis 的 2 号数据库 ,使用 pipe