redis-cli

【Redis】redis-3.0.0安装以及集群的搭建

女生的网名这么多〃 提交于 2020-12-07 17:59:05
前言 redis是常用的no-sql数据库,常用于缓存数据,同时,他也可以持久化数据。他是C语言开发的,所以安装的时候需要编译。 单机版redis yum install gcc-c++ (安装C语言编译环境) 安装 第一步:redis的源码包上传到linux系统( 点击下载 ) 第二步: tar xzvf redis-3.0.0.tar.gz ( 解压缩redis ) 第三步: make ( 编译。需进入redis源码目录 ) 第四步: make install PREFIX=/usr/local/redis ( 安装redis到指定目录 ) PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下 启动 ./redis-server (服务前端启动) ./redis-cli shutdown (服务关闭) ./redis-server redis.conf (服务后端启动-需执行以下操作) cp redis.conf /usr/local/redis/bin/ ( 将 redis源码redis-3.0.0中的redis.conf复制到安装目录的bin下 ) 修改该配置文件,将其中的daemonize no改为yes ./redis-cli -h ip地址 -p 端口 (连接客户端) ping ( 判断服务健康状态 ) redis集群 机制 (1

玩转Redis-干掉钉子户-没有设置过期时间的key

天大地大妈咪最大 提交于 2020-12-06 18:39:04
   《玩转Redis》系列文章 by zxiaofan 主要讲述Redis的基础及中高级应用。本文是《玩转Redis》系列第【15】篇, 最新系列文章 请前往 公众号“zxiaofan” (点我点我) 查看,或 百度搜索“玩转Redis zxiaofan”(点我点我) 即可。 本文关键字: 玩转Redis、导出没有设置过期时间的key、删除没有设置过期时间的key ; 往期精选 : 《玩转Redis-生产环境如何导入、导出及删除大量数据》 大纲 如何查询Redis中没有设置过期时间的key数量 导出Redis中没有设置过期时间的key 安全删除Redis中没有设置过期时间的key   前段时间公司有新业务需要使用Redis,于是查看了生产一Redis集群的使用情况,用于评估是否能直接接入新业务。此Redis集群购买的阿里云集群社区版,8节点32G;   不看不知道,一看吓一跳。Redis实例共计 450W key,其中 230W 设置了过期时间,也就是说足足有 220W key没有设置过期时间。 What !!! 接近 50% 的数据没有过期时间,完全不符合常理,严重浪费。    不把这些钉子户揪出来,“誓不为猿”。   文末已放 github 联接。 1、如何查询Redis中未设置过期时间的key数量 1.1、使用阿里云【云数据库Redis版管理控制台】查看  

2万字好文!手把手教你实现 Docker 部署 Redis 集群

柔情痞子 提交于 2020-12-02 16:18:30
点击上方 " 程序员小乐 "关注, 星标或置顶一起成长 后台回复“ 大礼包 ”有惊喜礼包! 关注订阅号「 程序员小乐 」,收看更多精彩内容 每日英文 Life is not always what we want it to be. We fight. We cry. And sometimes, we give up. But in our hearts, we know it's still love. 生活有时不尽如人意。我们挣扎、哭泣,有时甚至放弃。但内心始终充满爱. 每日掏心话 人有时需要内心单纯的像个孩子,但有时也要内心强大的像混凝土。 来自:我为什么要写这个 | 责编:乐乐 链接:cnblogs.com/cxbhakim/p/9151720.html 后端架构师(ID:study_tech) 第 1067 次推文 往日回顾: 任正非在荣耀送别会上的讲话:一旦“离婚”就不要藕断丝连,要做华为全球最强的竞争对手 正文 摘要 接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群。 首先,我们需要理论知识:Redis Cluster是Redis的分布式解决方案,它解决了redis单机中心化的问题,分布式数据库——首要解决把整个数据集按照分区规则映射到多个节点的问题。 这边就需要知道分区规则—

为什么 Redis 单线程能支撑高并发?

社会主义新天地 提交于 2020-11-27 10:56:40
点击上方蓝色“ 后端面试那些事儿 ”,选择“设为星标” 学最好的别人,做最好的我们 来源:draveness.me/redis-io-multiplexing 几种 I/O 模型 Blocking I/O I/O 多路复用 Reactor 设计模式 I/O 多路复用模块 封装 select 函数 封装 epoll 函数 子模块的选择 总结 最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。 几种 I/O 模型 为什么 Redis 中要使用 I/O 多路复用这种技术呢? 首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用 就是为了解决这个问题而出现的。 Blocking I/O 先来看一下传统的阻塞 I/O 模型到底是如何工作的:当使用 read 或者 write 对某一个**文件描述符(File Descriptor 以下简称 FD)**进行读写时,如果当前 FD 不可读或不可写,整个 Redis

redis专题之redis cluster高可用集群

江枫思渺然 提交于 2020-11-26 08:32:33
1.redis cluster集群是什么? redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis cluster集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。 需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到1000节点。 redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单 2.redis cluster集群搭建 redis cluster集群需要至少要三个master节点,这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,由于节点数较多,这里采用在一台机器上创建6个redis实例,并将这6个redis实例配置成集群模式,所以这里搭建的是伪集群模式,当然真正的分布式集群的配置方法几乎一样,搭建伪集群的步骤如下: 第一步:在/usr/local下创建文件夹redis-cluster,然后在其下面分别创建6个文件夾如下 (1)mkdir -p /usr/local/redis-cluster (2)mkdir 8001、 mkdir 8002、 mkdir 8003、 mkdir 8004、 mkdir 8005、 mkdir8006 第二步:把之前的redis

Redis未授权访问利用

江枫思渺然 提交于 2020-11-25 03:23:04
转载:https://www.cnblogs.com/-qing-/p/10978912.html 0x01 kali安装redis 下载 wget http: // download.redis.io/releases/redis-4.0.11.tar.gz 解压 tar -zxvf redis- 4.0 . 11 .tar.gz 切换目录 cd redis - 4.0 . 11 编译 make 继续切换目录 cd src 运行redis cp redis -benchmark redis-cli redis-server /usr/bin/ 0x02 什么是Redis未授权访问漏洞 Redis 默认情况下,会绑定在 0.0.0.0: 6379 ,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网 上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的 config 命令,可以 进行写文件操作 ,攻击者可以成功将自己的 ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中

Linux & Windows 环境下 Redis 安装与基本配置

被刻印的时光 ゝ 提交于 2020-11-23 08:25:21
索引: 目录索引 参看代码 GitHub: redis.txt 一、Linux (DeepinOS) 环境 1 1 .安装Redis服务 2 sudo apt-get install redis- server 3 2 .启动服务 4 /etc/init.d/redis- server start 5 3 .连接服务 6 redis- cli 7 连接 8 quit 9 退出 10 4 .修改配置 11 sudo vim /etc/redis/ redis.conf 12 密码 -- #requirepass foobared去掉注释,foobared改为自己的密码 13 5 .redis服务操作 14 sudo ./redis- server restart 15 如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/ 重启redis 16 /etc/init.d/redis- server stop 17 /etc/init.d/redis- server start 18 /etc/init.d/redis- server restart 19 如果是通过源码安装的redis,则可以通过redis的客户端程序redis- cli的shutdown命令来重启redis 20 redis-cli -h 127.0 . 0.1 -p

Redis学习四(运维指南).

断了今生、忘了曾经 提交于 2020-11-18 20:37:15
一、上线规划 一般 redis 的参数配置都在 redis.conf 中,在上线前根据实际环境配置好合适参数,能有效提高 redis 的可用性。 redis 的运行机器 CPU 不求核数多,但求主频高,Cache大,因为 redis 主处理模式是单进程的。 留意 redis 日志文件的配置,对应 logfile 参数。redis.log 为 redis 主日志,sentinel.log 为 sentinel 监控日志。 关闭 THP,这个默认的 Linux 内存页面大小分配策略会导致 RDB 时出现巨大的 latency 和巨大的内存占用。关闭方法为: echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 一定要设置最大内存 maxmemory 参数,否则物理内存用爆了就会大量使用 Swap,写 RDB 文件时的速度很慢。设置的参数参考:机器内存 * 45% / 1.2。(1.2 为内存碎片) maxmemory-policy 策略,则当 redis 内存数据达到 maxmemory 时,会根据 maxmemory-policy 配置来淘汰内存数据,以避免OOM。 noeviction:不执行任何淘汰策略

基于redis-cluster搭建redis高可用集群

穿精又带淫゛_ 提交于 2020-11-10 01:53:24
本次,我们以6台redis实例搭建3个master和3个slave组成的集群。 第一步, 在/usr/local/redis/目录下创建一个名叫cluster的文件夹 cd /usr/local/redis mkdir cluster 然后在cluster下面创建7001-7006为名字的6个文件夹 mkdir 7001 第二步,在6个文件夹下分别建一个redis.conf文件 vi redis.conf ##端口 port 7001 ##开启集群模式 cluster-enabled yes ##生成集群的配置文件 cluster-config-file nodes.conf ##实例间通信的超时时间 cluster-node-timeout 5000 ##开启AOF持久化,会创建一个appendonly.aof的持久化文件 appendonly yes ##redis后台启动 daemonize yes #bind 0.0.0.0 ##关闭保护模式,允许外部访问 protected-mode no 每一个redis.conf的端口分别为7001-7006 第三步,把redis-server和redis-cli两个脚本复制到7001-7006文件加下面 第四步,分别进入6个文件夹,启动redis实例 ./redis-server ./redis.conf 第五步

redis的几种数据导入导出方式【转】

人走茶凉 提交于 2020-11-09 17:19:10
环境说明: 202.102.221.11 redis源实例 202.102.221.12 redis目标实例 202.102.221.13 任意linux系统 一、redis-dump方式   1.安装redis-dump工具 [root@ 202.102 . 221.13 ~]# yum install ruby rubygems ruby-devel - y # 更改gem源 [root@ 202.102 . 221.13 ~]# gem sources -a http: // ruby.taobao.org Error fetching http: // ruby.taobao.org: bad response Not Found 404 (http: // ruby.taobao.org/specs.4.8.gz)   访问http: // ruby.taobao.org,公告通知镜像维护站点已迁往Ruby China镜像 #gem sources --add https: // gems.ruby-china.org/ --remove https://rubygems.org/ [root@ 202.102 . 221.13 ~]# gem sources --add http: // gems.ruby-china.org/ --remove http:/