Redis快速入门
文章目录
- Redis快速入门
- 一、初识Redis
- 1.1、NoSQL数据库
- 1.2、Redis介绍
- 1.3、[Redis](https://redis.io/)的安装
- 二、Redis常见命令
- 2.1、Redis默认启动
- 2.2、指定配置启动
- 2.3、Redis开机自启设置
- 三、Redis客户端
- 3.1、Redis命令行客户端
- 3.2、图形化桌面客户端
- 四、redis的常用指令
- 4.1、Redis数据结构介绍
- 4.2、Redis的通用命令
- 4.3、Redis各数据类型常用的命令
- 4.3.1、String类型
- 4.3.2、key的分级存储
- 4.3.3、Hash类型
- 4.3.4、List类型
- 4.3.5、Set类型
- 4.3.6、SortedSet类型
一、初识Redis
1.1、NoSQL数据库
NoSQL数据库(Not Only SQL数据库)是一类非关系型数据库,它们采用了不同于传统关系型数据库的数据存储模型。NoSQL数据库旨在解决关系型数据库在某些情况下的限制,如扩展性、灵活性和高可用性。以下是一些常见类型的NoSQL数据库以及它们的主要特点:
-
文档型数据库(Document Databases):特点:文档型数据库存储数据以文档的形式,通常使用JSON或类似的格式。如:MongoDB
-
键值存储数据库(Key-Value Stores):键值存储数据库通过将数据存储为键值对的方式,提供了快速的数据检索和存储。这种模型适用于需要高速读写操作的应用,如缓存、会话管理和实时分析。如:Redis
-
图形数据库(Graph Databases):图形数据库专门用于存储和查询图形数据结构,如网络关系、社交网络和知识图谱。这种模型非常适合复杂的数据关系和图形分析.
NoSQL的主要优势:
-
高扩展性: NoSQL数据库通常支持水平扩展,允许在需要时添加更多的节点和服务器,以应对大规模数据和高并发负载。
-
灵活的数据模型: NoSQL数据库通常支持动态模式,可以适应不断变化的数据需求,而无需事先定义表结构。
-
高性能: 针对特定用途的NoSQL数据库通常能够提供快速的读写操作,特别是在大规模数据集上。
-
高可用性: 许多NoSQL数据库提供了内置的复制和故障容忍功能,以确保数据的高可用性。
1.2、Redis介绍
Redis(Remote Dictionary Server)是一种开源的高性能内存键值存储数据库系统。它被设计用于处理各种数据结构,包括字符串、哈希表、列表、集合、有序集合等。Redis是一个非常快速、轻量级、持久化、可扩展的NoSQL数据库,经常用于缓存、会话存储、消息队列、实时统计等应用。
特征:
- 键值型(K-V),value支持多种不同的数据结构,功能丰富
- 单线程,每个命令具有原子性
- 低延迟,速度快(基于内存、IO多路复用、良好的编码)。
- 支持数据持久化(确保安全性)
- 支持主从集群、分片集群
1.3、Redis的安装
推荐使用linux操作系统进行使用
- 安装Redis依赖
yum install -y gcc tcl
#Redis基于c语言编写的,因此首先需要安装Redis所需要的gcc依赖
- 下载,解压,编译
#安装wget命令
sudo yum install wget
wget http://download.redis.io/releases/redis-5.0.4.tar.gz # 下载
tar -xzf redis-5.0.4.tar.gz #解压
cd redis-5.0.4
make # 编译
make install #安装
3 . 默认的安装路径是在/usr/local/bin
目录下:
该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。
- redis-cli:是redis提供的命令行客户端
- redis-server:是redis的服务端启动的脚本
- redis-sentinel:是redis的哨兵启动的脚本
二、Redis常见命令
2.1、Redis默认启动
安装完成后,在任意目录输入redis-server命令即可启动Redis;
redis-server
如图:
这种启动属于,会阻塞前台启动
整个回话窗口,窗口关闭或者按下CTRL+C
则Redis停止。(不推荐使用)
2.2、指定配置启动
- 现将redis.config文件进行备份
cp redis.conf redis.conf.bck
- 修改redis.config文件中的一些配置:
# 监听的地址。默认的是127.0.0.1,会导致只能本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
- Redis的其它常见配置
# 监听的端口
port 6379 # 默认端口号
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1一个库,默认有16个库,编号为0-15
database 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
- 启动Redis
# 进入redis安装目录
cd /usr/local/redis-5.0.4
# 启动--以加载配置文件的方式进行启动(后台启动)
redis-server redis.conf
# 查询 redis当前所占的进程
ps -ef | grep redis
# 结束当前进程
kill -9 pid
5. 停止服务
# 利用redis-cli 来执行 shutdown 命令,即可停止 Redis 服务
# 因为之前配置了密码,因此需要通过 -u 来指定密码
redis-cli -u 123456 shutdown
2.3、Redis开机自启设置
- 首先,建立一个系统服务文件:redis.service
vi /etc/systemed/system/redis.service
内容如下:
[Unit]
Description=Redis Server
After=network.target[Service]
type = forking
ExecStart=/usr/local/bin/redis-server /usr/local/redis-5.0.4/redis.conf
PrivateTmp=true
# ExecStop=/usr/local/bin/redis-cli shutdown
# Restart=always[Install]
WantedBy=multi-user.target
- 然后重载系统服务
sudo systemctl daemon-reload
- 启用Redis服务自启动
使用以下命令启用Redis服务自启动:
sudo systemctl enable redis
- 启动redis
# 通过start启动redis
systemctl start redis
- 查看redis状态
systemctl status redis
- 停止redis
systemctl syop redis
三、Redis客户端
3.1、Redis命令行客户端
Redis安装完成后自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
# 进入命令端
redis-cli -a 123456 -p 6379
其中常见的options:
-h 127.0.0.1
:指定要连接redis节点的IP地址,默认是127.0.0.1-p 6379
:指定要连接的redis节点的端口,默认是6379-a 123456
:指定redis的访问密码
其中的commonds就是Redis的操作命令,例如:
ping
:与redis服务器做心跳测试,服务器正常返回pong
3.2、图形化桌面客户端
RESP软件
四、redis的常用指令
4.1、Redis数据结构介绍
Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:
4.2、Redis的通用命令
命令文档
- help命令
# help帮助文档
help @[结构类型] #如:help @string
help del #查询del命令的操作语法
- keys命令
查询当前的key
keys : #查看符合模版的所有keys 网址https://redis.io/commands/keys/
keys *name* #键值中有name的都返回 *表示多个占位符
keys a?? # ?表示一个占位符
keys * #返回所有的键值
- del命令
删除指定键值的k-v
4. exists命令
判断指定key是否存在
- expire命令和TTL命令
expire命令:给key设置一个有效期
TTL命令: 查看一个Key的剩余有效期
4.3、Redis各数据类型常用的命令
4.3.1、String类型
4.3.2、key的分级存储
key的结构:
Redis的key允许有多个单词形成层级结构,多个单词之间用∵’隔开,格式如下:
项目名称:业务名:类型:id
这个格式并非是固定的。
4.3.3、Hash类型
Hash类型有优点:相比String类型的数据可以对某一个键值进行修改。
4.3.4、List类型
4.3.5、Set类型
常见命令
4.3.6、SortedSet类型