参考源

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 上就安装完毕了。

Redis 01 概述的更多相关文章

  1. Redis数据库概述

    Redis数据库概述 Redis是什么 redis是一个高性能的key-value存储系统.支持的value类型相对更多,包括string,list,set,zset(sorted set --有序集 ...

  2. Redis入门--(二)Redis的概述

    1.Redis的由来 创始人觉得Mysql不好用,就自己写了: 国内使用Redis的网站有新浪微博,知乎: 国外GitHub: VMWare也支持redis的开发 2.Redis的概述 官方提供的测试 ...

  3. Redis数据库 01概述| 五大数据类型

    1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...

  4. Redis的概述、优势和安装部署

    Redis概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使 ...

  5. java 框架-缓冲-Redis 1概述

    https://www.jianshu.com/p/56999f2b8e3b Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在 ...

  6. Redis -- 01 入门

    1. Redis是什么 与memcached 和 couchbase类似,redis是非常快速的基于内存的键值数据库,使用标准c编写,是使用最广泛的缓存中间件.利用Redis提供的五种基本数据类型(S ...

  7. 01 - 概述 VTK 6.0 迁移

    摘要 对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives.分离数据和执行模型的代码后,可以双双简化修改 ...

  8. redis入门概述

    一.是什么 redis:REmote  DIctionary Server(远程字典服务器).是完全开源免费的,是用C语言编写的,遵守BSD协议,是一个高性能(key/value)分布式内存数据库,基 ...

  9. Redis总体 概述,安装,方法调用

    1 什么是redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset( ...

随机推荐

  1. 【Unity Shader】syntax error: unexpected token 'struct' at line x 错误解决办法

    以下代码处出现了syntax error: unexpected token 'struct' at line 33的错误 struct a2v { float4 vertex_position : ...

  2. leetcode 4. Median of Two Sorted Arrays 寻找两个正序数组的中位数(困难)

    一.题目大意 标签: 查找 https://leetcode.cn/problems/median-of-two-sorted-arrays 给定两个大小分别为 m 和 n 的正序(从小到大)数组 n ...

  3. SQL中把汉字转换拼音码

    思路:在SQL中创建一个函数fn_GetPy(),函数的输入参数是一个汉字字符串,返回值是拼音码字符串. 创建函数语句: CREATE function fn_GetPy(@str nvarchar( ...

  4. Docker权限 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/”

    问题及解决办法 在普通用户下执行docker命令需要用sudo,没加sudo出现了下图所示的提示: 从上图看出,权限不足连接/var/run/docker.sock,我们看下这个文件: 可以看出,这个 ...

  5. Spring Ioc源码分析系列--容器实例化Bean的四种方法

    Spring Ioc源码分析系列--实例化Bean的几种方法 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到bean真正通过那些方式实例化出来的时候,并没有继续分 ...

  6. 基于Streamlit_prophet玩转Prophet时序预测

    既然是玩转,就得easy,在通俗搞懂核心原理的基础上,重在实践. 本文首先介绍Prophet模型基本使用,再介绍一个开箱即用的开源项目--Streamlit_prophet,进一步降低Prophet使 ...

  7. 【Redis】事件驱动框架源码分析(单线程)

    aeEventLoop初始化 在server.c文件的initServer函数中,对aeEventLoop进行了初始化: 调用aeCreateEventLoop函数创建aeEventLoop结构体,对 ...

  8. BUUCTF-穿越时空的思念

    穿越时空的思念 音频题的话一般是摩尔斯电码,软件打开音频发现 短的为. 长的为- 空缺的为空格 ..-. ----- ..--- ----. -... -.. -.... ..-. ..... ... ...

  9. 使用aggregation API扩展你的kubernetes API

    Overview What is Kubernetes aggregation Kubernetes apiserver aggregation AA 是Kubernetes提供的一种扩展API的方法 ...

  10. 安装typescript环境并开启VSCode自动监视编译ts文件为js文件

    一.前言 小编最近开始学习typescript,懂得人都知道,typescript是vue3的基础伴生,配合更加默契.就像vue2和js一样!typescript不像js那样浏览器直接可以解读,需要我 ...