Redis 01 概述
参考源
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 数据库种类繁多(MongoDB、Redis 等),共同的特点都是去掉关系数据库的关系型特性。
数据之间无关系,这样就非常容易扩展,无形之间也在架构的层面上带来了可扩展的能力。
大数据量下 NoSQL 数据库具有非常高的读写性能,这得益于它的无关系性,数据库的结构简单。
NoSQL 数据库的典型代表就是 Redis。
Redis
Redis(Remote Dictionary Server ),即远程字典服务。
一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key - Value 数据库,并提供多种语言的 API。
从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。
从 2013 年 5 月开始,Redis的开发由 Pivotal 赞助。
安装
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.conf 由 daemonize 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 概述的更多相关文章
- Redis数据库概述
Redis数据库概述 Redis是什么 redis是一个高性能的key-value存储系统.支持的value类型相对更多,包括string,list,set,zset(sorted set --有序集 ...
- Redis入门--(二)Redis的概述
1.Redis的由来 创始人觉得Mysql不好用,就自己写了: 国内使用Redis的网站有新浪微博,知乎: 国外GitHub: VMWare也支持redis的开发 2.Redis的概述 官方提供的测试 ...
- Redis数据库 01概述| 五大数据类型
1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...
- Redis的概述、优势和安装部署
Redis概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使 ...
- java 框架-缓冲-Redis 1概述
https://www.jianshu.com/p/56999f2b8e3b Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在 ...
- Redis -- 01 入门
1. Redis是什么 与memcached 和 couchbase类似,redis是非常快速的基于内存的键值数据库,使用标准c编写,是使用最广泛的缓存中间件.利用Redis提供的五种基本数据类型(S ...
- 01 - 概述 VTK 6.0 迁移
摘要 对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives.分离数据和执行模型的代码后,可以双双简化修改 ...
- redis入门概述
一.是什么 redis:REmote DIctionary Server(远程字典服务器).是完全开源免费的,是用C语言编写的,遵守BSD协议,是一个高性能(key/value)分布式内存数据库,基 ...
- Redis总体 概述,安装,方法调用
1 什么是redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset( ...
随机推荐
- Java线程池ThreadPoolExecutor极简教程
ThreadPoolExecutor 简介 ThreadPoolExecutor 是 java.util.concurrent 包下的一个类,在jdk1.5版本引入,帮助开发人员管理线程并方便地执行并 ...
- 05-STL
Day01 笔记 1 STL概论 1.1 STL六大组件 1.1.1 容器.算法.迭代器.仿函数.适配器.空间配置器 1.2 STL优点 1.2.1 内建在C++编译器中,不需要安装额外内容 1.2. ...
- 测试平台系列(95) 前置条件支持简单的python脚本
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节我们构思了一下怎么去支 ...
- Oracle数据库丢失表排查思路
Oracle数据库丢失表排查思路 说明:由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排查思路: 由于我们代 ...
- Java概论——JavaSE基础
Java概论 Java特性和优势 简单性 面向对象 可移植性 高性能:即时编译 分布式:可处理TCP/IP协议的一些东西 动态性:通过反射机制使其具有动态性 多线程:良好的交互性和实时性 安全性:防病 ...
- 第6章 字符串(上)——C风格字符串
6.1 C-strings(C 风格字符串) C风格字符串: 字符数组是元素为字符型的数组,字符串是以空字符'\0' 作为数组最后一个元素的字符数组. 如果指定了数组的大小,而字符串的长度又小于数组大 ...
- 开发工具-Java SDK下载地址
更新记录 2022年6月14日 加入更多的下载地址. 2022年6月10日 完善标题. 下载地址: https://www.oracle.com/java/technologies/downloads ...
- GitHub-SSH密钥获取
SSH密钥 需要先安装git的客户端,下载: http://git-scm.com/download/ 使用下列步骤完成密钥的添加. 检查系统是否存在密钥 运行 Git Bash, 在弹出的终端中输入 ...
- UiPath文本操作Get Visible Text的介绍和使用
一.]Get Visible Text(获取可见文本)操作的介绍 从指示的UI元素中提取字符串及其信息.执行屏幕抓取操作时,还可以自动生成此活动以及容器. 二.Get Visible Text在UiP ...
- CPI教程-异步接口创建及使用
CPI教程-异步接口创建及使用 create by yi 转载请注明出处 先简单介绍一下同步接口和异步接口 什么是同步接口 同步接口的意思就是发送方发送Message后,接口方处理完成后会立刻返回执行 ...