1 redis 安装和配置
# redis 是什么
开源:基于c编写的,早起版本2w3千行
基于键值对的存储系统:字典形式
多种数据结构:字符串,hash,列表,集合,有序集合
高性能,功能丰富
#Redis特性(8个)
1 速度快:10w ops(每秒10w读写),数据存在内存中,c语言实现,数据单线程模型
2 持久化:rdb和aof
3 多种数据结构:
4 5大数据结构
BitMaps位图:布隆过滤器 本质是 字符串
HyperLogLog:超小内存唯一值计数,12kb HyperLogLog 本质是 字符串
GEO:地理信息定位 本质是有序集合
5 支持多种编程语言:基于tcp通信协议,各大编程语言都支持
6 功能丰富:发布订阅(消息) 事务(pipeline)
简单:源代码几万行,不依赖外部库
7 主从复制和高可用
主从复制:主服务器和从服务器,主服务器可以同步到从服务器中
高可用和分布式
1.2 redis 安装(linux-cenots)
1.2.1 源码安装
wget https://github.com/redis/redis/archive/7.2.4.tar.gz
mv redis-stable/ redis
-
make && make install /usr/local/bin/ 路径下会有可执行文件
c /usr/local/bin/ 已经在环境变量了,再任意路径敲
redis-server
cd
cd redis
ll
mv redis.conf redis.conf.bak
vi redis.conf
-
mkdir data redis-server ./redis.conf redis-cli -v ps aux |grep redis
# 0 使用源码包,源码编译安装
# 2 官方提供地址
wget https://download.redis.io/redis-stable.tar.gz
# 3 github开源地址
https://github.com/redis/redis/releases
wget https://github.com/redis/redis/archive/7.2.4.tar.gz
# 4 解压
tar -xzvf redis-stable.tar.gz
# 5 改名
mv redis-stable/ redis
# 6 没有可执行文件---》编译安装
cd redis
# make--》只是编译---》编译后的可执行文件会放在src目录下
# make install--》安装---》指定安装目录
make && make install
# /usr/local/bin/ 路径下会有可执行文件
# 4 src目录下,就会有几个可执行文件
#redis-server--->redis服务器
#redis-cli---》redis命令行客户端
#redis-sentinel---》sentinel服务器,哨兵
#redis-benchmark---》redis性能测试工具
#redis-check-aof--->aof文件修复工具
#redis-check-dump---》rdb文件检查工具
# 5 /usr/local/bin/ 已经在环境变量了,再任意路径敲
redis-server # 都能执行
# 6 修改配置文件启动 vi redis.conf
daemonize yes
pidfile /var/run/redis.pid
port 6379
dir ./data
logfile 6379.log
# 7 创建文件夹 cd redis
mkdir data
# 8 启动
redis-server ./redis.conf # 数据目录data在当前目录下
ps aux |grep redis
# 9 查看redis版本
redis-cli -v
redis-cli 7.2.5
cd redis-stack-server/
ls
cd bin/
ls
cd ../
cd etc/
ls
[root@localhost etc]# ls
README redis-stack.conf redis-stack-service.conf
rm -rf *
vi redis.conf
cd ../
mkdir data
# 在cd /redis-stack-server/
./bin/redis-server ./etc/redis.conf
vi redis.conf
1.2.2 redis-stack
# 0 编译过后的可执行文件
分平台:mac,linux:乌班图,centos
# 1 下载地址:https://redis.io/downloads/ # centos的
wget https://packages.redis.io/redis-stack/redis-stack-server-7.2.0-v11.rhel7.x86_64.tar.gz
# 2 解压即用
tar -xzvf redis-stack-server-7.2.0-v11.rhel7.x86_64.tar.gz
# 3 文件夹重命名
mv redis-stack-server-7.2.0-v11 redis-stack-server
cd redis-stack-server/etc
rm -rf *
vi redis.conf
cd ../
mkdir data
./bin/redis-server ./etc/redis.conf
# 4 配置环境变量
-mac , linux,win 环境变量,是一堆key-value,在操作系统整个运行过程中拿到
-特殊:PATH: 以 ; : 分割,放了很多路径,这些路径下的可执行文件,可以在任意路径下执行
-用户变量,系统变量
-用户环境变量---》只有当前用户能用
-系统环境变量--》所有用户都用
-win:
#输出环境变量 需要使用 % % 包裹起来
echo %PATH%
# 配置环境变量--图形化界面
-mac,linux
# 输出环境变量
echo $PATH
-用户环境变量(每个用户家路径里)
cd # 回家 /root /home/名字
ls -al # 查看当前文件夹下所有文件和文件夹(包含隐藏的)
.bash_profile #配置用户环境变量
vi .bash_profile # 编辑环境变量---》等同于
PATH=$PATH:$HOME/bin:写个绝对路径
PATH=$PATH:写个绝对路径
export PATH
source .bash_profile # 让配置生效
-系统环境变量
# 5 任意路径下敲
redis-server # 启动redis
# 6 查看redis版本
./bin/redis-cli -v
1.3 redis 启动
####### 1 最简启动 :以默认启动:6379端口,监听本地。。。#######
redis-server
ps -ef|grep redis #查看进程
# root 93390 81863 0 12:33 pts/8 00:00:00 redis-server *:6379
# yum install net-tools -y
netstat -antpl|grep redis #查看端口
redis-cli -h ip -p port ping #命令查看
#######2 动态参数启动#######
redis-serve --port 6380 # 启动,监听6380端口
#######3 配置文件启动#######
#配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字)
#####通过redis-cli连接,输入config get * 可以获得默认配置
#在redis目录下创建config目录,copy一个redis.conf文件
#daemonize--》是否是守护进程启动(no|yes)
#port---》端口号
#logfile--》redis系统日志
#dir--》redis工作目录
1 cd redis # 进入到目录
2 mv redis.conf redis.conf.bak # 备份一下原来的配置文件
3 vi redis.conf # 在文件中写入
daemonize yes
pidfile /var/run/redis.pid
port 6379
dir ./data
logfile 6379.log
4 redis-server ./redis.conf # 后台运行
2 redis客户端操作
允许远程连接
# 关闭连接要先进入redis-cli
shutdown
# 启动
redis-server ./redis.conf
####配置允许远程链接###########
# 1 使用配置文件启动redis
cd redis
redis-server ./redis.conf
daemonize yes
bind 0.0.0.0
protected-mode no
requirepass 123456
pidfile /var/run/redis.pid
port 6379
dir "/root/redis-7.2.4/data"
logfile 6379.log
###注意防火墙,一旦是公司的,必须加密码,并且密码复杂一些
# 2 redis-server ./redis-conf
# 3 允许远程链接
-方式一: win :redis-cli -h 10.0.0.111 -p 6379
-方式二: resp 远程链接
# 4 如果连不上:关防火墙
systemctl stop firewalld
systemctl status firewalld
### 客户端连接,常用操作###
redis-cli -h 10.0.0.111 -p 6379
redis-cli -h 10.0.0.111 -p 6379 -a 123456
ping #返回PONG,说明联通的
## 有密码的情况可以两种登陆方式
# 方式一
redis-cli -h 127.0.0.1 -p 6370 -a 123456
# 方式二
先登陆,再通过auth输入密码
#### redis配置文件
## redis-cli进入
config get 名字 # 从客户端可以拿到服务端的配置
CONFIG GET * # 390对--》195多键值--》配置信息
-bind
-port
CONFIG SET maxmemory 128M # 设置最大使用的内存
CONFIG set requirepass 654321 # 设置密码 ---》客户端可以改服务端密码
# 永久生效
CONFIG REWRITE # 保存到配置文件
### redis 入侵到 linux操作系统
https://cloud.tencent.com/developer/article/1440296
# 避免:
-运行redis进程的用户不要用root
-运行redis的用户不允许登录