redis-cli

Redis BigKey介绍

不想你离开。 提交于 2020-10-28 04:45:48
一、什么是bigkey 在Redis中,一个字符串最大512MB,一个二级数据结构(例如hash、list、set、zset)可以存储大约40亿个(2^32-1)个元素,但实际上中如果下面两种情况,我就会认为它是bigkey。 字符串类型 :它的big体现在单个value值很大,一般认为超过10KB就是bigkey。 非字符串类型 :哈希、列表、集合、有序集合,它们的big体现在元素个数太多。 二、危害 bigkey可以说就是Redis的老鼠屎,具体表现在: 1.内存空间不均匀 这样会不利于集群对内存的统一管理,存在丢失数据的隐患。 2.超时阻塞 由于Redis单线程的特性,操作bigkey的通常比较耗时,也就意味着阻塞Redis可能性越大,这样会造成客户端阻塞或者引起故障切换,它们通常出现在慢查询中。 例如,在Redis发现了这样的key,你就等着DBA找你吧。 127 .0 .0 .1 :6379 > hlen big :hash(integer) 2000000127 .0 .0 .1 :6379 > hgetall big :hash 1) " a " 2) "1" 3.网络拥塞 bigkey也就意味着每次获取要产生的网络流量较大,假设一个bigkey为1MB,客户端每秒访问量为1000,那么每秒产生1000MB的流量,对于普通的千兆网卡(按照字节算是128MB/s

5.docker学习笔记之入门,redis配置优化

一曲冷凌霜 提交于 2020-10-23 08:32:52
内存分配:vm.overcommit_memory Redis是内存操作,需要优先使用内存。设置overcommit 为1。是为了让 fork 操作能够在低内存下也执行成功。Linux 操作系统对大部分申请内存的请求都回复 yes,以便能运行更多的程序。因为申请内存后,并不会马上使用内存,这种技术叫做 overcommit。 vm.overcommit_memory 用来设置内存分配策略,有三个可选值 THP:Redis 在启动时可能会看到如下日志: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

docker安装redis

巧了我就是萌 提交于 2020-10-15 00:30:24
1.获取镜像 -- :4 指定redis Tag Name -- ➜ docker pull redis :4 2.构建运行目录 ➜ redis ll drwxr -xr -x 3 pb staff 102B 9 17 10 : 06 conf drwxr -xr - x@ 4 pb staff 136B 9 17 10 : 38 data -rw -r --r -- 1 pb staff 160B 9 17 11 : 08 start .sh conf redis配置目录,里面有一个redis.conf(官网cp) data redis数据持久化目录 start.sh 启动脚本(如下) # start.sh #!/usr/bin/env bash docker run --rm -p 6379:6379 --name myredis -v $PWD/conf:/conf -v $PWD/data:/data -d redis redis-server /conf/redis.conf --appendonly yes 参数: --rm 在容器终止运行后自动删除容器文件 -d 后台运行 -p 6379:6379 端口映射(本机6379端口映射容器6379端口) --name myredis 容器别名 -v /etc/app/redis/conf:/conf 目录映射

redis主从同步参数repl-backlog-size测算

浪子不回头ぞ 提交于 2020-10-06 08:04:14
一、背景 在不影响正常业务的情况下redis主从同步时总会出现timeout,部分同步失败的情况。需要评估一下repl-backlog-size的大小,来避免复制时出现异常 二、步骤 1、获取数据 借助redis-cli 、info replication..收集master_repl_offset每一分钟前后的数据,其中使用了sed 和awk命令对数据进行处理,为后期分析提供便利。 脚本如下 #!/bin/bash # @date: 2020-07-02 # @author: ninesun # @parm : null # @desc: save master_repl_offset by mins echo "start!" for((i=6379; i<6387; i++)) do redis-cli -p $i info replication|grep master_repl_offset|sed 's/:/|/g'|awk '{print strftime("%Y-%m-%d %H:%M:%S"),$0}'|sed 's/ /|/g'|sed 's/|/ /'|sed ' s/^/'$i\|'/' >> /home/scripts/redis/redisParm.csv echo "port $i save successful!" done echo "end!"

Kubernetes-基于helm安装部署高可用的Redis及其形态探索

北慕城南 提交于 2020-10-02 12:50:11
首先是一些关于redis的介绍和其在K8S上的安装过程:https://www.kubernetes.org.cn/3974.html 1.1部署形态 通过上述地址的教程,可以完成redis 的安装和使用。本文主要是要阐述一些社区版的redis-ha的形态探索。 这是我按照上述教程安装的例子,可以看到,默认是安装1主+2从,这是3节点的配置。同时,每个redis-server和一个redis-sentinel安装在一个节点,也就有了三个redis-sentinel。 1.2主从切换 首先,我们通过kubectl get svc -n default的方式来获取redis的网络情况。(n为namespace,请根据自己情况进行更改) 然后,我们通过redis-cli的方式来访问redis的master实例,并获取Replication的状态。 从上图中,我们可以看出,redis master有两个slave,同时,可以看到他们的ip和pod ip是对应的。(注意,这里我们是在宿主机上,通过master的clusterIP访问的,而非redis pod的) 我们进入到redis的master server的pod中,kill掉redis server进程,因为pod存活条件应该是以redis来判断的(有的是ping 6379这个端口,这里暂时还不知道是怎么判断的。)

Redis入门(6)

不想你离开。 提交于 2020-10-02 08:00:19
Lua基本语法 表类型 函数 Redis执行脚本 KEYS与ARGV 沙盒与随机数 脚本相关命令 原子性和执行时间 Lua是一种高效的轻量级脚本语言,能够方便地嵌入到其他语言中使用。在Redis中,借助Lua脚本可以自定义扩展命令。 Lua基本语法 数据类型 空(nil),没有赋值的变量或表的字段值都是nil 布尔(boolean) 数字(number),整数或浮点数 字符串(string),字符串可以用单引号或双引号表示,可以包含转义字符如\n \r等 表(table),表类型是Lua语言中唯一的数据结构,既可以当数组又可以当字典,十分灵活 函数(function),函数在Lua中是一等值(first-class-value),可以存储在变量中、作为函数的参数或返回结果。 变量 Lua的变量分为全局变量和局部变量,全局变量无需声明就可以直接使用,默认值是nil。 全局变量: a=1 -- 为全局变量a赋值 print(b) -- 无需声明即可使用,默认值是nil 局部变量: local c -- 声明一个局部变量c,默认值是nil local d=1 -- 声明一个局部变量d并赋值为1 local e,f -- 可以同时声明多个局部变量 但在Redis中,为了防止脚本之间相互影响,只允许使用局部变量。 赋值 Lua支持多重赋值,如: local a,b=1,2 --a的值是1

Redis 5.0.4 集群扩容(3主3从到9主9从)以及4.0迁移到5.0

江枫思渺然 提交于 2020-10-01 14:58:19
说明:redis集群 49 50 51 版本redis_version:4.0.9 迁移到 redis集群 77 78 79 版本:redis_version:5.0.4 并将3主3从集群扩容到9主9从 学习链接 https://blog.51cto.com/8370646/2309693 网上参考文档:https://blog.csdn.net/huwei2003/article/details/50973967 一、复制dump.rdb数据到新版本Redis集群迁移方式 1、Redis5.0.4安装配置 #wget http://download.redis.io/releases/redis-5.0.4.tar.gz #tar xf redis-5.0.4.tar.gz #cd redis-5.0.4 #make 2、配置 #cat /opt/app/redis7000/redis.conf daemonize yes port 7000 bind 172.16.100.77 appendonly no save 900 1 save 300 10 save 60 10000000 dir /opt/app/redis7000/db/ pidfile /opt/app/redis7000/redis_7000.pid logfile /opt/app/redis7000

048. Redis 单机、哨兵、集群搭建

时光总嘲笑我的痴心妄想 提交于 2020-10-01 10:07:03
1. Redis 单机搭建(以 6.0.6 版本为例) 安装 gcc 套装。 yum install cpp yum install binutils yum install glibc yum install glibc-kernheaders yum install glibc-common yum install glibc-devel yum install gcc yum install make 升级 gcc。 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash 使 scl 长期有效。 echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile 下载 redis 。 wget http://download.redis.io/releases/redis-6.0.6.tar.gz 解压。 tar vxf redis-6.0.6.tar.gz 编译,安装。 cd redis-6.0.6/ make make PREFIX=/usr/local/redis install 创建配置文件、数据目录

Docker Hadoop、Spark、Kafka、Zookeeper等集群服务搭建

百般思念 提交于 2020-09-27 13:09:51
目录 Docker搭建Hadoop集群(Docker & Hadoop & HDFS & Yarn & Cluster) Docker搭建Myrocks实例(Docker & Mysql & Rocksdb) Docker搭建Kafka集群(Docker & Kafka & Cluster) Docker Container开启ssh服务 Docker Host创建swarm overlay网络 Docker Host设置自启动、国内源、代理 Docker、Docker Compose、Docker Machine各平台安装 Docker 搭建Zookeeper集群(Docker & Zookeeper & Replication) Docker 搭建Pika分片多主集群(Docker & Codis & Pika& Replication & Sharding) Docker搭建Spark集群(Docker & Spark & Cluster & Local & Standalone) Docker搭建SSDB分片多主集群(Docker & Twemproxy & SSDB & Replication & Sharding) Docker搭建MongoRocks副本分片集群(Docker & Mongodb & Rocksdb & Replication & Sharding)

Redis构建简单的主从复制

孤街浪徒 提交于 2020-08-20 07:10:17
Redis构建简单的主从复制 原理: 当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。无论是第一次同步建立的连接还是连接断开后的重新连 接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。后台进程完成写文件 后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上。 配置前提,关闭防火墙或允许redis端口通行 Centos7 IP:10.0.0.128(master) IP:10.0.0.129(slave) 主服务器配置: 下载安装包,解压并编译; [root@master ~]# cd /usr/local/src/ [root@master src]# wget [root@master src]# tar -zxvf redis-stable.tar.gz [root@master src]# mv redis-stable /usr/local/redis [root@master src]# cd /usr/local/redis/ [root@master redis]# make && make install copy配置文件redis.conf到/etc/目录下 [root@master redis]