参考源

https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0

版本

本文章基于 Redis 6.2.6


简介

NoSQL

NoSQL(Not Only SQL),即不仅是SQL,泛指非关系型数据库

NoSQL 易扩展,NoSQL 数据库种类繁多(MongoDBRedis 等),共同的特点都是去掉关系数据库的关系型特性。

数据之间无关系,这样就非常容易扩展,无形之间也在架构的层面上带来了可扩展的能力。

大数据量下 NoSQL 数据库具有非常高的读写性能,这得益于它的无关系性,数据库的结构简单。

NoSQL 数据库的典型代表就是 Redis

Redis

Redis(Remote Dictionary Server ),即远程字典服务

一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key - Value 数据库,并提供多种语言的 API。

从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。

从 2013 年 5 月开始,Redis的开发由 Pivotal 赞助。

官网:https://redis.io/

安装

Windows

下载

https://github.com/tporadowski/redis/releases

解压后的目录如下

文件介绍

  • redis-server.exe:服务端程序,提供 Redis 服务。
  • redis-cli.exe: 客户端程序,通过它连接 Redis 服务并进行操作。
  • redis-check-dump.exe:RDB 文件修复工具。
  • redis-check-aof.exe:AOF 文件修复工具。
  • redis-benchmark.exe:性能测试工具,用以模拟同时由 N 个客户端发送 M 个 SETs/GETs 查询(类似于 Apache 的 ab 工具)。
  • redis.windows.conf: 配置文件,将 Redis 作为普通软件使用的配置,命令行关闭则 Redis 关闭。
  • redis.windows-service.conf:配置文件,将 Redis 作为系统服务的配置。

使用

双击 redis-server.exe,会弹出窗口一闪而过,如果不想窗口消失,可以在 cmd 中打开。

这里启动的是 Redis 的服务端,用于提供服务。

双击 redis-cli.exe

这里启动的是 Redis 的客户端,用于连接服务。

测试使用

如此即说明 Redis 可以正常使用。

Windows 下安装和使用 Redis 都非常简单,但官方并不推荐

官方建议使用 Linux 进行部署。

Redis 可以在其他操作系统中工作,但这种支持是尽力而为的。Windows 版本没有官方支持。

Linux

这里以 CentOS 7.6 系统为例

环境准备

由于 Redis 由 ANSI C 编写,安装 Redis 前需要先安装 C 语言环境。

yum install gcc-c++

下载

访问 Redis 官方:https://redis.io/

解压

tar -zvxf redis-6.2.6.tar.gz

移动

一般都会将 redis 目录放置到 /usr/local/redis

这里将目前在 /home/sail 目录下的 redis-6.2.6 文件夹更改目录,同时更改文件夹名称为 redis

mv /home/sail/redis-6.2.6 /usr/local/redis

编译

跳转到 /usr/local/redis

make

最后输出如下内容即代表编译成功

安装

make PREFIX=/usr/local/redis install

这里多了一个关键字 PREFIX=

这个关键字的作用是编译的时候用于指定程序存放的路径。

比如我们现在就是指定了 redis 必须存放在 /usr/local/redis 目录。

假设不添加该关键字 Linux 会将可执行文件存放在 /usr/local/bin 目录。

这里指定号目录也方便后续的卸载,后续直接 rm -rf /usr/local/redis 即可删除 redis。

启动

我们一般需要后台启动 Redis

这里有两种方式:命令带&修改配置文件

命令带&

./bin/redis-server& ./redis.conf
[root@sail redis]# ./bin/redis-server& ./redis.conf
[1] 11953
-bash: ./redis.conf: Permission denied
[root@sail redis]# 11953:C 15 Mar 2022 16:15:10.803 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
11953:C 15 Mar 2022 16:15:10.803 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=11953, just started
11953:C 15 Mar 2022 16:15:10.803 # Warning: no config file specified, using the default config. In order to specify a config file use ./bin/redis-server /path/to/redis.conf
11953:M 15 Mar 2022 16:15:10.803 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 11953
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' 11953:M 15 Mar 2022 16:15:10.804 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
11953:M 15 Mar 2022 16:15:10.804 # Server initialized
11953:M 15 Mar 2022 16:15:10.804 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
11953:M 15 Mar 2022 16:15:10.804 * Ready to accept connections

这种方式需要在启动命令中带 & 才行,不太方便,一般都是通过修改配置文件实现。

修改配置文件

redis.confdaemonize no 改为 daemonize yes 即可。

修改后不带 & 也可以后台启动。

./bin/redis-server ./redis.conf

这里列举下 redis.conf 中比较重要的配置项

配置项名称 配置项值范围 说明
daemonize yes、no yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
port 指定 Redis 监听端口,默认端口为 6379
bind 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
protected-mode yes 、no 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
timeout 300 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
loglevel debug、verbose、notice、warning 日志级别,默认为 notice
databases 16 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompression yes、no 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilename dump.rdb 指定本地数据库文件名,默认值为 dump.rdb
dir 指定本地数据库存放目录
requirepass 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH 命令提供密码,默认关闭
maxclients 0 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemory XXX 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

查看

查看进程方式

ps -ef|grep redis
[root@sail redis]# ps -ef|grep redis
root 11953 3410 0 16:15 pts/1 00:00:02 ./bin/redis-server *:6379

查看端口方式

Redis 的默认端口为 6379,一般不会更改,可以通过该端口查询 Redis 允许情况。

netstat -lanp | grep 6379
[root@sail redis]# netstat -lanp | grep 6379
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 11953/./bin/redis-s

环境变量配置

为方便使用,建议先配置 Redis 的环境变量。

vim /etc/profile

source /etc/profile

性能测试

bin 目录下的 redis-benchmark 可以进行性能测试

  • -c(clients):客户端的并发量(默认 50)。
  • -n(num):客户端请求数量(默认 100000)。
  • -q:仅仅显示 redis-benchmark 的 requests per second 信息。
  • -r(random):向 Redis 插入更多随机的值。
  • -P :每个请求pipeline的数据量(默认为 1)。
  • -k :客户端是否使用 keepalive,1 为使用,0 为不使用,默认值为 1。
  • -t:对指定命令进行基准测试。
  • –csv:将结果按照 csv 格式输出。
redis-benchmark -h localhost -p 6379 -c 100 -n 100000

使用

redis-cli 是连接本地redis服务的一个命令,通过该命令后可以进入 redis 的脚本控制台。

配置好环境变量后任意目录下输入 redis-cli 即可进入。

[root@sail etc]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set hello Hello World
(error) ERR syntax error
127.0.0.1:6379> set hello "Hello World"
OK
127.0.0.1:6379> get hello
"Hello World"

这样 Redis 在 Linux 上就安装完毕了。

最新文章

  1. 解决:Windows 开机弹出AotuIt ERROR 错误
  2. OC编程的一些UI细节
  3. ajax省市区三级联动
  4. dos2unix unix2dos
  5. django数据库动态添加列
  6. ASP.NET页面优化,提高载入速度[转]
  7. WEB安全--CSRF剖析
  8. hdu 1058 Humble Numbers
  9. iOS开发——UI篇OC篇&UICollectionView详解+实例
  10. angularJS中XHR与promise
  11. CSS的一些思考(一)
  12. CSS一些设置用法
  13. c++ const char *[] or char [][]
  14. HTML5 开发APP( 环境配置)
  15. WebApi 的三种寄宿方式 (一)
  16. ●Joyoi 收集邮票
  17. 二进制安装 kubernetes 1.12(一) - 安装 ETCD
  18. PostgreSQL远程访问设置
  19. 3proxy使用方法
  20. mysql定时任务,每天的零点执行一个存储过程

热门文章

  1. Sass预处理器
  2. CF 1015F
  3. 【Java面试】请说一下Mysql索引的优点和缺点?
  4. 更换conda镜像源、pip镜像源
  5. 漏洞修复之Oracle系列
  6. 代码调用Rally的接口介绍
  7. 聊聊 C# 和 C++ 中的 泛型模板 底层玩法
  8. 微信0day复现
  9. UiPath文本操作Set Text的介绍和使用
  10. 加班?不存在的啦~Python处理Excel,学会这十四个方法,工作量减少大半