【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            (端口号:638036             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 # 后台运行

【redis客户端操作】

 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的用户不允许登录

 

posted on 2024-06-25 19:22  认真的六六  阅读(100)  评论(0)    收藏  举报