前言:今天主播有点累了,这章没有前言哦

目录
3.1执行软件包自带的install_server.sh脚本文件设置redid服务相关配置
3.2 把redis的可执行程序文件放入路径环境变量的目录中便于系统识别
3.3修改配置 /etc/redis/6379.conf 参数
关系型和非关系型数据库的主要差异是数据存储的方式。
| 关系型 | 依赖于关系模型E-R图,同时以表格形式的方式存储数据 |
|---|---|
| 非关系型 | 除了以表格形式存储之外,通常会以大块的形式组合在一起进行存储数据 |
SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。
| 关系 | 纵向 | 天然表格式 |
|---|---|---|
| 非关 | 横向 | 天然分布式 |
| 关系型 | 特别适合高事务性要求和需要控制执行计划的任务 |
| 非关系 | 此处会稍显弱势,其价值在于高扩展和大数据量处理方面 |
关系型数据库: 实例->数据库->表(table)->记录行(row)、数据字段(column)
实例->数据库->集合(collection)–>键值对(key-value) 非关系型数据库不需要手动建数据库和集合(表)。
2.5.3概述
- MySQL高热数据 ----》 redis
- web ----》 redis ----》 MySQL
- CPU ----》 内存/缓存 ----》 磁盘
Redis作为基于内存运行的数据库,缓存是其最常应用的场景之一。除此之外,Redis常见应用场景还包括获取最新n个数据的操作、排行榜类应用、计数器应用、存储关系、实时分析系统、日志记录。
注:在 Redis 6.0 中新增加的多线程也只是针对处理网络请求过程采用了多线性,而数据的读写命令,仍然是单线程处理的。
- systemctl stop firewalld
- systemctl disable firewalld
- setenforce 0
-
- #安装gcc gcc-c++ 编译器
- cd /opt/
- yum install -y gcc gcc-c++ make
-
- tar zxvf redis-5.0.7.tar.gz
-
- cd /opt/redis-5.0.7/
- make && make PREFIX=/usr/local/redis install
-
- #由于Redis源码包中直接提供了Makefile 文件,所以在解压完软件包后,不用先执行./configure 进行配置,可直接执行make与make install命令进行安装



- cd /opt/redis-5.0.7/utils
- ./install_server.sh
- ……
- 慢慢回车
- Please select the redis executable path []
- 手动输入
- /usr/local/redis/bin/redis-server
- #要一次性输入正确,不然还要重新执行
- Selected config:
- Port : 6379 #默认侦听端口为6379
- Config file : /etc/redis/6379.conf #配置文件路径
- Log file : /var/log/redis_6379.log #日志文件路径
- Data dir : /var/lib/redis/6379 #数据文件路径
- Executable : /usr/local/redis/bin/redis-server #可执行文件路径
- Cli Executable : /usr/local/bin/redis-cli #客户端命令工具

- ln -s /usr/local/redis/bin/* /usr/local/bin/ #首先这里做个软链接
-
- #当install_server.sh 脚本运行完毕,Redis服务就已经启动,默认侦听端口为6379
- netstat -natp | grep redis
-
- #redis服务控制
- /etc/init.d/redis_6379 stop #停止
- /etc/init.d/redis_6379 start #启动
- /etc/init.d/redis_6379 restart #重启
- /etc/init.d/redis_6379 status #状态

- vim /etc/redis/6379.conf
-
- #70行;添加;监听的主机地址
- bind 127.0.0.1 192.168.190.2
- #93行;Redis默认的监听端口
- port 6379
- #137行;启用守护进程
- daemonize yes
- #159行;指定 PID 文件
- pidfile /var/run/redis_6379.pid
- #167行;日志级别
- loglevel notice
- #172行;指定日志文件
- logfile /var/log/redis_6379.log
-
- /etc/init.d/redis_6379 restart


- redis-server 用于启动 Redis 的工具
- redis-benchmark 用于检测 Redis 在本机的运行效率
- redis-check-aof 修复 AOF 持久化文件
- redis-check-rdb 修复 RDB 持久化文件
- redis-cli Redis命令行工具
语法:redis-cli -h host -p port -a password
| -h | 指定远程主机 |
| -p | 指定 Redis 服务的端口号 |
| -a | 指定密码,未设置数据库密码可以省略-a 选项 |
- 若不添加任何选项表示,则使用 127.0.0.1:6379 连接本机上的 Redis 数据库
- 例:
- redis-cli -h 192.168.226.50 -p 6379
- #此时无密码,不需要-a直接登陆

redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。
- 基本的测试语法:redis-benchmark [选项] [选项值]。
-
- -h 指定服务器主机名。
- -p 指定服务器端口。
- -s 指定服务器 socket
- -c 指定并发连接数。
- -n 指定请求数。
- -d 以字节的形式指定 SET/GET 值的数据大小。
- -k 1=keep alive 0=reconnect 。
- -r SET/GET/INCR 使用随机 key, SADD 使用随机值。
- -P 通过管道传输请求。
- -q 强制退出 redis。仅显示 query/sec 值。
- --csv 以 CSV 格式输出。
- -l 生成循环,永久执行测试。
- -t 仅运行以逗号分隔的测试命令列表。
- -I Idle 模式。仅打开 N 个 idle 连接并等待。
此时向 IP 地址为 192.168.226.50、端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能
redis-benchmark -h 192.168.226.50 -p 6379 -c 100 -n 100000

测试存取大小为 100 字节的数据包的性能
redis-benchmark -h 192.168.226.50 -p 6379 -q -d 100

测试本机上Redis服务在进行set和lpush操作时的性能
redis-benchmark -t set,lpush -n 100000 -q

- set 存放数据,命令格式为 set key value
- get 获取数据,命令格式为 get key
- keys 命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用。
- exists 命令可以判断键值是否存在。
- del 命令可以删除当前数据库的指定 key。
- type 命令可以获取 key 对应的 value 值类型。
-
- set 存放数据,命令格式为 set key value
- get 获取数据,命令格式为 get key例:
-
- 例:
- redis-cli -p 6379
-
- set name hehe
- get name

- keys 命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用。
-
- redis-cli -p 6379
-
- set name hehe
- get name
-
- set a1 1
- set a2 2
- set a33 3
- set b1 4
- set b2 5
- set b33 6
-
- keys *
- keys b*
- keys b?
- keys b??


- keys *
- del a1
- keys *

- exists 命令可以判断键值是否存在。
-
- exists name
- exists hehe


- rename 命令是对已有 key 进行重命名。(覆盖)
- 命令格式:rename 源key 目标key
-
- 使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。在实际使用过程中,建议先用 exists 命令查看目标 key 是否存在,然后再决定是否执行 rename 命令,以避免覆盖重要数据。
-
- 例:
- keys a*
- rename a22 a2
- keys a*
- get a1
- get a2
- rename a1 a2
- keys a*
- get a2

- renamenx 命令的作用是对已有 key 进行重命名,并检测新名是否存在,如果目标 key 存在则不进行重命名。(不覆盖)
- 命令格式:renamenx 源key 目标key
-
- 例:
- keys a*
- get a2
- get a1
- renamenx a2 a1
- keys a*
- get a2
- get a1

- dbsize 命令的作用是查看当前数据库中 key 的数目。
- 例:
- keys *
- dbsize

- 使用config set requirepass password命令设置密码
- 使用config get requirepass命令查看密码(一旦设置密码,必须先验证通过密码,否则所有操作不可用)
- 例:
- config set requirepass 123456
- auth 123456
- config get requirepass
- quit
- redis-cli
- keys *
- auth 123456
- keys *

- 命令格式:select 序号
- 使用 redis-cli 连接 Redis 数据库后,默认使用的是序号为 0 的数据库。
-
- 127.0.0.1:6379> select 10 #切换至序号为 10 的数据库
- 127.0.0.1:6379[10]> select 15 #切换至序号为 15 的数据库
- 127.0.0.1:6379[15]> select 0 #切换至序号为 0 的数据库

- 格式:move 键值 序号
- 例:
- set nannan jiajia
- get nannan
-
- select 5
- get nannan
-
- select 0
- move nannan 5
- get nannan
-
- select 5
- get nannan

- FLUSHDB :清空当前数据库数据
- FLUSHALL :清空所有数据库的数据,慎用!
本章讲解了数据库与非数据库的区别,以及如何安装Redis和他的基础命令操作,具体内容详见下一章,欲知后事如何,且听下回分解~