【redis介绍】
1 # redis(非关系型数据库) 是什么 2 开源:基于c编写的,早起版本2w3千行 3 基于键值对的存储系统:字典形式 4 多种数据结构:字符串,hash,列表,集合,有序集合 5 高性能,功能丰富 6 7 #Redis特性(8个) 8 1 速度快:10w ops(每秒10w读写),数据存在内存中,c语言实现,数据单线程模型 9 10 2 持久化:rdb和aof 11 12 3 多种数据结构: 13 14 4 5大数据结构 15 BitMaps位图:布隆过滤器 本质是 字符串 16 HyperLogLog:超小内存唯一值计数,12kb HyperLogLog 本质是 字符串 17 GEO:地理信息定位 本质是有序集合 18 19 5 支持多种编程语言:基于tcp通信协议,各大编程语言都支持 20 21 6 功能丰富:发布订阅(消息) 事务(pipeline) 22 简单:源代码几万行,不依赖外部库 23 24 7 主从复制和高可用 25 主从复制:主服务器和从服务器,主服务器可以同步到从服务器中 26 高可用和分布式 27 28 29 ============================================ 30 补充: 31 在Redis中,主从复制、高可用和分布式是三种不同的概念,它们用于提高Redis的性能、可靠性和扩展性。 32 33 主从复制 34 主从复制是Redis中的一种数据同步机制,其中有一个主节点(master)负责处理写操作,而有一个或多个从节点(slave)负责处理读操作。主节点上的所有数据更改(写操作)都会同步到从节点,确保从节点上的数据是主节点数据的副本。 35 36 主从复制的主要优点包括: 37 38 读写分离:主节点处理写操作,从节点处理读操作,可以提高系统的处理能力。 39 数据冗余:提供了数据备份,增强了数据的安全性。 40 负载均衡:可以在多个从节点之间分配读请求,降低单个节点的压力。 41 高可用 42 Redis的高可用是指Redis系统能够在部分组件发生故障时仍然能够继续提供服务的能力。Redis Sentinel是实现高可用的一种机制,它能够监控Redis主从节点的健康状态,并在主节点发生故障时自动进行故障转移,将从节点提升为新的主节点。 43 44 高可用的关键点包括: 45 46 故障检测:Sentinel能够检测到主节点的故障。 47 自动故障转移:当主节点不可用时,Sentinel会自动将从节点升级为新主节点。 48 重新配置:客户端会被告知新的主节点地址,确保应用能够继续运行。 49 分布式 50 Redis分布式是指将数据分散存储在多个Redis节点上,这些节点共同组成一个Redis集群。在分布式Redis集群中,数据被分为多个片段,并分布在这些片段所在的节点上。 51 52 分布式的主要特点有: 53 54 数据分片:不同的数据存储在不同的节点上,允许横向扩展。 55 高可用性:集群中的节点可以彼此复制数据,即使某个节点发生故障,其他节点仍然可以提供服务。 56 负载均衡:请求可以在多个节点之间分配,提高了系统的处理能力和存储容量。
。
。
【redis 安装(linux-cenots)】
源码安装
1 # 0 使用源码包,源码编译安装 2 # 2 官方提供地址 3 下载地址:https://redis.io/downloads/ 4 wget https://download.redis.io/redis-stable.tar.gz 5 # 3 github开源地址 6 https://github.com/redis/redis/releases 7 wget https://github.com/redis/redis/archive/7.2.4.tar.gz 8 9 # 4 解压 10 tar -xzvf redis-stable.tar.gz 11 12 # 5 改名 13 mv redis-stable/ redis 14 15 # 6 没有可执行文件---》编译安装 16 cd redis 17 # make--》只是编译---》编译后的可执行文件会放在src目录下 18 # make install--》安装---》指定安装目录 19 cd /usr/local/bin/ 20 make && make install 21 # /usr/local/bin/ 路径下会有可执行文件,如果没有指定安装目录,会在这 22 23 (我的计算机问题,遇到编译安装的时候报错,需要绕过一个USE_JEMALLOC=no 24 模块) 25 26 27 # 4 src目录下,就会有几个可执行文件 28 #redis-server--->redis服务器 29 #redis-cli---》redis命令行客户端 30 #redis-sentinel---》sentinel服务器,哨兵 31 #redis-benchmark---》redis性能测试工具 32 #redis-check-aof--->aof文件修复工具 33 #redis-check-dump---》rdb文件检查工具 34 35 # 5 /usr/local/bin/ 已经在环境变量了,再任意路径敲 36 redis-server # 都能执行 37 38 # 6 修改配置文件启动 vi redis.conf 39 daemonize yes 40 pidfile /var/run/redis.pid 41 port 6379 42 dir ./data 43 logfile 6379.log 44 45 # 7 创建文件夹 46 mkdir data 47 48 # 8 启动 49 ./bin/redis-server ./etc/redis.conf # 数据目录data在当前目录下 50 51 # 9 查看redis版本 52 redis-cli -v 53 redis-cli 7.2.5
redis-stack
1 # 0 编译过后的可执行文件 2 分平台:mac,linux:乌班图,centos 3 # 1 下载地址:https://redis.io/downloads/ # centos的 4 wget https://packages.redis.io/redis-stack/redis-stack-server-7.2.0-v11.rhel7.x86_64.tar.gz 5 需要先安装:yum install wget 6 7 # 2 解压即用 8 tar -xzvf redis-stack-server-7.2.0-v11.rhel7.x86_64.tar.gz 9 # 3 文件夹重命名 10 mv redis-stack-server-7.2.0-v11 redis-stack-server 11 12 # 4 配置环境变量 13 -mac , linux,win 环境变量,是一堆key-value,在操作系统整个运行过程中拿到 14 -特殊:PATH: 以 ; : 分割,放了很多路径,这些路径下的可执行文件,可以在任意路径下执行 15 -用户变量,系统变量 16 -用户环境变量---》只有当前用户能用 17 -系统环境变量--》所有用户都用 18 19 -win: 20 #输出环境变量 需要使用 % % 包裹起来 21 echo %PATH% 22 # 配置环境变量--图形化界面 23 24 -mac,linux 25 # 输出环境变量 26 echo $PATH 27 -用户环境变量(每个用户家路径里) 28 cd # 回家 /root /home/名字 29 ls -al # 查看当前文件夹下所有文件和文件夹(包含隐藏的) 30 .bash_profile #配置用户环境变量 31 vi .bash_profile # 编辑环境变量---》等同于 32 PATH=$PATH:$HOME/bin:写个绝对路径 33 PATH=$PATH:写个绝对路径 34 export PATH 35 (端口号:6380) 36 source .bash_profile # 让配置生效 37 38 -系统环境变量 39 40 # 5 任意路径下敲 41 redis-server # 启动redis 42 43 # 6 查看redis版本 44 ./bin/redis-cli -v
。
。
【redis 启动】
1 # 1 最简启动 :以默认启动:6379端口,监听本地。。。 2 redis-server 3 ps -ef|grep redis #查看进程 |关掉进程kill xxx端口号 4 # root 93390 81863 0 12:33 pts/8 00:00:00 redis-server *:6379 5 6 # yum install net-tools -y 7 netstat -antpl|grep redis #查看端口 8 redis-cli -h ip -p port ping #命令查看 9 10 11 #2 动态参数启动 12 redis-serve --port 6380 # 启动,监听6380端口 13 14 15 #3 配置文件启动 16 #配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字) 17 #通过redis-cli连接,输入config get * 可以获得默认配置 18 #在redis目录下创建config目录,copy一个redis.conf文件 19 #daemonize--》是否是守护进程启动(no|yes) 20 #port---》端口号 21 #logfile--》redis系统日志 22 #dir--》redis工作目录 23 24 1 cd redis # 进入到目录 25 2 mv redis.conf redis.conf.bak # 备份一下原来的配置文件 26 3 vi redis.conf # 在文件中写入
bind 0.0.0.0 # 允许远程连接
protected-mode no # 禁用保护模式 远程连接需要设置为no
daemonize yes # 守护进程 即后台运行
requirepass jh123# 设置redis密码 如果是公司 一定要加密码 并且密码不要太简单
pidfile /var/run/redis.pid # 指定Redis服务器进程的PID文件的路径
port 6379 # 端口
dir ./data # 指定Redis服务器用于持久化数据的目录路径。
logfile 6379.log # 存储日志文件
32 33 4 redis-server ./redis.conf # 后台运行
。
。
1 ####配置允许远程链接########### 2 # 1 使用配置文件启动redis 3 daemonize yes 4 5 bind 0.0.0.0 6 protected-mode no 7 requirepass 123456 8 9 pidfile /var/run/redis.pid 10 port 6379 11 dir "/root/redis-7.2.4/data" 12 logfile 6379.log 13 ###注意防火墙,一旦是公司的,必须加密码,并且密码复杂一些 14 # 2 redis-server ./redis-conf 15 16 # 3 允许远程链接 17 -方式一: win :redis-cli -h 10.0.0.111 -p 6379 18 -方式二: resp 远程链接 19 # 4 如果连不上:关防火墙 20 systemctl stop firewalld 21 systemctl status firewalld 22 23 24 ### 客户端连接,常用操作### 25 redis-cli -h 10.0.0.111 -p 6379 26 redis-cli -h 10.0.0.111 -p 6379 -a 123456 27 ping #返回PONG,说明联通的 28 29 ## 有密码的情况可以两种登陆方式 30 # 方式一 31 redis-cli -h 127.0.0.1 -p 6370 -a 123456 32 # 方式二 33 先登陆,再通过auth输入密码 34 35 36 #### redis配置文件 37 38 ## redis-cli进入 39 config get 名字 # 从客户端可以拿到服务端的配置 40 41 CONFIG GET * # 390对--》195多键值--》配置信息 42 -bind 43 -port 44 CONFIG SET maxmemory 128M # 设置最大使用的内存 45 CONFIG set requirepass 654321 # 设置密码 ---》客户端可以改服务端密码 46 # 永久生效 47 CONFIG REWRITE # 保存到配置文件 48 49 ### redis 入侵到 linux操作系统 50 https://cloud.tencent.com/developer/article/1440296 51 # 避免: 52 -运行redis进程的用户不要用root 53 -运行redis的用户不允许登录
浙公网安备 33010602011771号