当前位置: 首页 > news >正文

Redix数据库基础

一、关系数据库与非关系数据库概述

1. 关系型数据库

关系型数据库基于二维表格模型(关系模型),面向记录存储,使用 SQL 语言进行操作。主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microsoft Access、DB2 等。

2. 非关系型数据库

NoSQL(Not Only SQL)是非关系型数据库的总称,指除主流关系型数据库外的其他数据库。主流的 NoSQL 数据库有 Redis、MongBD、Hbase、Memcached、Varnish 等。

3. 两者核心区别

对比维度关系型数据库非关系型数据库
数据存储方式表格式(行和列),支持关联文档、键值对或图结构等大块组合存储
扩展方式纵向扩展(提高单服务器性能)横向扩展(增加服务器节点)
事务支持强事务性,支持细粒度控制和回滚事务支持较弱,更擅长扩展性和大数据处理

4. 非关系型数据库产生背景

主要为应对 Web2.0 的 "三高" 问题:

  • High performance:高并发读写需求
  • Huge Storage:海量数据存储与访问需求
  • High Scalability & High Availability:高可扩展性与高可用性需求

实际应用中,两者常结合使用:关系数据库负责处理关系逻辑,非关系数据库负责高效存储,例如将频繁访问的数据放入非关系数据库提升速度。

二、Redis 简介

Redis 是开源的、用 C 语言编写的 NoSQL 数据库,基于内存运行并支持持久化,采用 key-value 存储形式,是分布式架构中的重要组件。

1. Redis 服务器程序的单进程模型

  • 单进程模型,可在一台服务器启动多个进程
  • 单进程处理多客户端时性能会下降
  • 多进程可提高并发但会增加 CPU 压力
  • 建议开启 2 个进程(备份和平衡并发与 CPU 压力)

2. Redis 的优点

  • 极高的读写速度:读取最高 110000 次 /s,写入最高 81000 次 /s
  • 支持丰富的数据类型:String、List、Hash、Set、Ordered Set
  • 支持数据持久化(内存数据保存至磁盘)
  • 所有操作具有原子性
  • 支持 master-salve 模式的数据备份

3. 适合放入缓存的数据类型

  • 即时性数据(如物流状态)
  • 数据一致性要求不高的数据(如门店信息)
  • 访问量大且更新频率低的数据(如首页广告)

4. Redis 为什么这么快?

  • 纯内存结构,避免磁盘 I/O 耗时
  • 核心模块单线程,无多线程切换消耗
  • 采用 I/O 多路复用机制,提升并发效率
  • 注:Redis 6.0 新增的多线程仅用于处理网络请求,数据读写仍为单线程

三、Redis 部署

环境准备

bash

# 修改内核参数
vim /etc/sysctl.conf
vm.overcommit_memory = 1
net.core.somaxconn = 10000sysctl -p

安装步骤

bash

# 安装依赖
yum install -y gcc gcc-c++ make# 编译安装
tar zxvf redis-7.2.4.tar.gz -C /opt/
cd redis-7.2.4
make
make PREFIX=/usr/local/redis install# 创建工作目录
mkdir /usr/local/redis/{conf,log,data}# 配置文件处理
cp redis.conf /usr/local/redis/conf/
useradd -M -s /sbin/nologin redis
chown -R redis.redis /usr/local/redis/# 命令优化
ln -s /usr/local/redis/bin/* /usr/local/bin/

配置文件关键设置

bash

bind 127.0.0.1 192.168.115.111  # 监听的IP地址
protected-mode no               # 关闭保护模式
port 6379                       # 监听端口
daemonize yes                   # 守护进程模式
pidfile /usr/local/redis/log/6379.pid  # PID文件路径
logfile "/usr/local/redis/log/6379.log"  # 日志文件路径
dir /usr/local/redis/data       # 数据文件目录
requirepass 123.com             # 设置密码

服务管理

bash

# 创建systemd服务文件
vim /usr/lib/systemd/system/redis-server.service
[Unit]
Description=Redis Server
After=network.target[Service]
User=redis
Group=redis
Type=forking
TimeoutSec=0
PIDFile=/usr/local/redis/log/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target# 启动服务
systemctl start redis-server
systemctl enable redis-server

四、Redis 命令工具

主要命令工具

  • redis-server:服务器启动命令
  • redis-benchmark:性能测试工具
  • redis-check-aof:修复 AOF 持久化文件
  • redis-check-rdb:修复 RDB 持久化文件
  • redis-cli:客户端命令行工具
  • redis-sentinel:哨兵集群工具

常用命令示例

客户端连接

bash

redis-cli -h 192.168.115.111 -p 6379 -a '123.com'
性能测试

bash

# 100个并发连接,100000个请求测试
redis-benchmark -h 192.168.115.111 -p 6379 -c 100 -n 100000 -a '123.com'# 测试100字节数据包性能
redis-benchmark -h 192.168.115.111 -p 6379 -q -d 100 -a '123.com'

五、Redis 数据库常用命令

基本操作

  • set key value:存放数据
  • get key:获取数据
  • keys pattern:查询符合规则的键(支持 *、? 通配符)
  • exists key:判断键是否存在(1 存在,0 不存在)
  • del key:删除指定键
  • type key:查看值类型
  • expire key seconds:设置键过期时间
  • ttl key:查看剩余过期时间(-1 永不过期,-2 已过期)

键重命名

  • rename 源key 目标key:重命名(覆盖目标键)
  • renamenx 源key 目标key:重命名(目标键存在则不执行)

其他常用命令

  • dbsize:查看当前数据库键数量
  • config set requirepass 密码:设置密码
  • auth 密码:验证密码
  • append key value:追加值并返回长度
  • strlen key:获取值的字符长度
  • mset 键1 值1 键2 值2:批量设置
  • mget 键1 键2:批量获取
http://www.dtcms.com/a/537538.html

相关文章:

  • 达内网站开发成功的软文营销案例
  • 哪里有配音的网站青岛专业做网站的公司有哪些
  • 机器视觉的手机模组背光贴合应用
  • LeetCode 每日一题 2025/10/20-2025/10/26
  • 怎么做招聘网站设计2023年做网站怎么样
  • 大气微电影类网站织梦模板完整版广州有什么好玩的地方景点推荐
  • 网站网站是怎么做的百度网盘网页版官网
  • 国外最新创意产品网站岳阳招聘网最新招聘
  • 东莞做网站需要避免这些因素WordPress如何导入本地插件
  • 网站设计与建设报告如何给给公司建立网站
  • 中航建设集团有限公司网站国际新闻界期刊
  • 合合信息与上海交通大学开展课题合作研究,共探智能文档图像处理前沿技术
  • 罗湖商城网站设计价格网站系统分析
  • 沈阳网站建设蓝顶网络wordpress怎么让手机端好看
  • Java---StringBuilder
  • 大航母网站建设怎么样防制网站怎么做
  • app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性
  • 华为ACT三步走”实施路径,以推动行业智能化落地
  • 深度解析Weights Biases:让AI实验管理变得如此简单
  • 国内模板建站公司爱网恋的男生
  • 网站优化预算表白网页生成器下载
  • 广州石井做网站建设银行怎么加入信用网站
  • 网站开发项目个人总结wordpress建图片网站
  • Spring Boot3零基础教程,swagger生成接口文档,笔记72
  • 做网站的登陆功能互联网信息服务
  • 平度市城乡建设局网站搜索引擎营销的方式
  • asp网站建设实例花网站广州住房和城乡建设厅网站
  • 实时视频接入技术解析
  • 做优化的网站电话wordpress 5.0.2 发布失败
  • 商城建设公司湖南好搜公司seo