Redis入门到精通【基础篇】【一】
Redis是一个使用C语言写成的,开源的高性能key-value非关系缓存数据库
本系列作品持续更新中~
Redis入门到精通【基础篇】【一】
Redis入门到精通【基础篇】【二】
Redis入门到精通【基础篇】【三】
Redis入门到精通【实战篇】【一】
概述
学习Redis
之前我们要先明白一个概念,什么是非关系形数据库
非关系数据库(NoSQL)
非关系型的数据库,亦称NoSQL,即“Not Only SQL”的缩写,代表了一种不同于传统的关系型数据库的数据库管理系统。随着互联网web2.0网站的兴起,传统的关系数据库在处理超大规模和高并发的动态网站时面临挑战,非关系型数据存储得到了快速的发展,旨在解决大规模数据集合和多重数据种类带来的挑战,特别是大数据应用难题。
这里只做简单介绍,想了解更多的可以看大佬写的NoSQL详细介绍
什么是Redis
Redis
是一个使用C语言写成的,开源的高性能key-value非关系缓存数据库。它支持存储的value 类型相对更多,包括string(字符串)、hash(哈希类型)、list(链表)、set(集合)和sorted set(有序集合)。Redis
的数据都基于缓存的,所以很快,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis
也可以实现数据写入磁盘中,保证了数据的安全不丢失,而且Redis
的操作是原子性的。
Redis优缺点
优点
- 数据结构丰富,支持存储string、hash、set、zset、list等数据结构的value
- 读写性能优异,低延迟,速度快,基于内存、IO多路复用、良好的编码
- 支持事务,每个命令具备原子性,除网络处理模块外都是单线程
- 支持数据持久化,支持AOF和RDB两种持久化方式
- 支持主从集群、分片集群,主机会自动将数据同步到从机,可以进行读写分离
- 支持多语言客户端
缺点
- 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合场景主要局限在较小数据量的高性能操作和运算上
- Redi不具备自动容错和恢复的功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端IP才能恢复
- 数据不一致问题,主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性
- Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂,为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费
安装和启动Redis
Windows下载Redis
注意,Redis官方并没有开发Windows系统的Redis,因此,我们需要下载由微软开发的Windows版
Redis
1.点击下载Redis-x64-3.2.100.zip
2.下载解压包解压后,进入文件夹,如下图:
3.先点击redis-server.exe
启动Redis
服务,显示如下:
4.再点击redis-cli.exe
连接Redis
,显示如下:
注意!!!启动redis-cli.exe后不要关闭redis-server.exe程序,否则会报“Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接”的错误
5.Windows下Redis安装完成
Linux下载Redis
1.Redis
是基于C语言编写的,因此需要安装Redis
需要的gcc依赖:
yum install -y gcc tcl
2.进入Redis历史版本集,根据自己需求下载合适版本,笔者这里下载的redis-6.2.4.tar.gz
3.将解压包上传到虚拟机的制定目录,笔者这里选的目录是/user/local/src
先进入特权模式
sudo -s
使用tar -zxvf 文件名
的指令解压
tar -zxvf redis-6.2.4.tar.gz
进入Redis
的安装目录
cd redis-6.2.4
运行编译命令
make && make install
没有报错即为安装成功
以上/home/user/local/src/redis-6.2.4/src
即为安装路径
该目录以及默认配置到环境变量,因此可以在任何目录下运行这些命令。其中:
- redis-cli:是
Redis
提供的命令行客户端 - redis-server:是
Redis
的服务端启动脚本 - redis-sentinel:是
Redis
的哨兵启动脚本
4.启动
Redis
的启动方式有多种:
- 默认启动
- 指定配置启动
- 开机自启
我们可以在任意目录下输入redis-server
命令即可启动Redis
,显示如下:
redis-server
以上启动方式属于前台启动,会阻塞整个会话窗口,窗口关闭或按下ctrl
+c
则Redis
停止服务,不推荐使用
5.配置
要让Redis
以后台方式启动,则需修改Redis
配置文件
首先备份一份配置文件
cp redis.conf redis.conf.bck
进入配置文件,如下所示:
vi redis.conf
然后修改redis.conf
文件中的一些配置
# 允许监听的地址,默认是 127.0.0.1 ,会导致只能在本地访问,修改为 0.0.0.0 则可在任意IP访问,生产环境不要设置为 0.0.0.0
bind 0.0.0.0
# 守护进程,修改为 yes 后即可后台运行
daemonize yes
# 密码,设置后访问 Redis 必须输入密码
requirepass 密码
# 监听端口
port 6379
# 工作目录,默认是当前目录,也就是运行 redis-server 时的命令,日志、持久化等文件会保存在这个目录
dir ./
# 数据库数量,设置为1,代表只使用1个库,默认16个库,编号 0-15
databases 1
# 设置 Redis 能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
注意,一定要给Redis
设置密码,不然可能造成严重安全事故!!!
再次启动Redis
# 进入 Redis 安装目录
cd /home/user/local/src/redis-6.2.4/src
# 启动
redis-server redis.conf
启动后可以通过以下指令查看Redis
是否正常运行,如下图所示:
ps -ef | grep redis
我们还可以根据上述进程号,停止服务
kill -9 进程号
或者
# 利用 redis-cli 来执行 shutdown 命令,即可停止 Redis服务
redis-cil -u 密码 shutdown
实现开机自启
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
ExecStart=redis-server地址 redis.conf地址
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后重载系统服务
systemctl daemon-reload
之后我们就可以对Redis
进行操作了
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
执行下面的命令,可以让redis开机自启:
systemctl enable redis
如下图所示,Linux系统的Redis
安装配置成功
性能测试
redis 性能测试的基本命令如下:
redis-benchmark [option] [option value]
序号 | 参数 | 描述 | 默认值 |
---|---|---|---|
1 | -h | 指定服务器主机名 | 127.0.0.1 |
2 | -p | 指定服务器端口 | 6379 |
3 | -s | 指定服务器 socket | |
4 | -c | 指定并发连接数 | 50 |
5 | -n | 指定请求数 | 10000 |
6 | -d | 以字节的形式指定 SET/GET 值的数据大小 | 2 |
7 | -k | 1=keep alive 0=reconnect | 1 |
8 | -r | SET/GET/INCR 使用随机 key, SADD 使用随机值 | |
9 | -P | 通过管道传输 请求 | 1 |
10 | -q | 强制退出 redis。仅显示 query/sec 值 | |
11 | –csv | 以 CSV 格式输出 | |
12 | *-l*(L 的小写字母) | 生成循环,永久执行测试 | |
13 | -t | 仅运行以逗号分隔的测试命令列表。 | |
14 | *-I*(i 的大写字母) | Idle 模式。仅打开 N 个 idle 连接并等待。 |
本节结束
本系列作品持续更新中~
更多推荐
所有评论(0)