Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)

Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)

目录

  • 1.redis入门
    • [1.1 NoSQL的引言](#1.1 NoSQL的引言)
    • [1.2 为什么是NoSQL](#1.2 为什么是NoSQL)
    • [1.3 NoSQL的四大分类](#1.3 NoSQL的四大分类)
      • [1.3.1 键值(Key-Value)存储数据库](#1.3.1 键值(Key-Value)存储数据库)
      • [1.3.2 列存储数据库](#1.3.2 列存储数据库)
      • [1.3.3 文档型数据库](#1.3.3 文档型数据库)
      • [1.3.4 图形(Graph)数据库](#1.3.4 图形(Graph)数据库)
      • [1.3.5 NoSQL应用场景](#1.3.5 NoSQL应用场景)
    • [1.4 Redis 简介](#1.4 Redis 简介)
    • [1.5 电商场景](#1.5 电商场景)
    • [1.6 认识Redis](#1.6 认识Redis)
    • [1.7 Redis 的应用](#1.7 Redis 的应用)
    • [1.8 Redis 的下载与安装](#1.8 Redis 的下载与安装)
    • [1.9 bin目录下的核心文件](#1.9 bin目录下的核心文件)
    • [1.10 Redis 的基本操作](#1.10 Redis 的基本操作)
    • 1.11Redis对数据库操作的指令

1.redis入门

1.1 NoSQL的引言

.properties 复制代码
NoSQL(Not Only SQL),意即不仅仅是SQL, 泛指非关系型的数据
库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越
发高涨。

1.2 为什么是NoSQL

.properties 复制代码
随着互联网网站的兴起,传统的关系数据库在应付动态网站,
特别是超大规模和高并发的纯动态网站已经显得力不从心,暴
露了很多难以克服的问题。如商城网站中对商品数据频繁查
询、对热搜商品的排行统计、订单超时问题、以及微信朋
友圈(音频,视频)存储等相关使用传统的关系型数据库实
现就显得非常复杂,虽然能实现相应功能但是在性能上却不
是那么乐观。nosql这个技术门类的出现,更好的解决了这些
问题,它告诉了世界不仅仅是sql。

1.3 NoSQL的四大分类

1.3.1 键值(Key-Value)存储数据库
.properties 复制代码
1.说明: 
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的
键和一个指针指向特定的数据。

2.特点
Key/value模型对于IT系统来说的优势在于简单、易部署。  
但是如果DBA只对部分值进行查询或更新的时候,Key/value就
显得效率低下了。

3.相关产品
Tokyo Cabinet/Tyrant,
Redis  内存
SSDB   硬盘
Voldemort 
Oracle BDB
1.3.2 列存储数据库
.properties 复制代码
1.说明
这部分数据库通常是用来应对分布式存储的海量数据。

2.特点
键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。

3.相关产品
Cassandra、HBase、Riak.
1.3.3 文档型数据库
.properties 复制代码
# 1.说明
- 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且
它同第一种键值存储相类似该类型的数据模型是版本化的文档,
半结构化的文档以特定的格式存储,比如JSON。文档型数据库
可以看作是键值数据库的升级版,允许之间嵌套键值。而且文
档型数据库比键值数据库的查询效率更高

# 2.特点
- 以文档形式存储

# 3.相关产品
- MongoDB、CouchDB、 MongoDb(4.x). 国内也有文档型数据
库SequoiaDB,已经开源。
1.3.4 图形(Graph)数据库
.properties 复制代码
1.说明
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它
是使用灵活的图形模型,并且能够扩展到多个服务器上。
NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询
需要制定数据模型。许多NoSQL数据库都有REST式的数据接口
或者查询API。

2.相关产品
Neo4J、InfoGrid、 Infinite Graph、
1.3.5 NoSQL应用场景
.properties 复制代码
数据模型比较简单

需要灵活性更强的IT系统

对数据库性能要求较高

不需要高度的数据一致性

1.4 Redis 简介

.properties 复制代码
问题现象
海量用户
高并发

罪魁祸首------关系型数据库
性能瓶颈:磁盘IO性能低下
扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群

解决思路
降低磁盘IO次数,越低越好 ------ 内存存储
去除数据间关系,越简单越好 ------ 不存储关系,仅存储数据
这里Nosql可以解决

NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系
型数据库的补充
作用:应对基于海量用户和海量数据前提下的数据处理问题。

特征:
可扩容,可伸缩
大数据量下高性能
灵活的数据模型
高可用

常见 Nosql 数据库:
Redis
memcache
HBase
MongoDB

1.5 电商场景

1.6 认识Redis

.properties 复制代码
概念:Redis (REmote DIctionary Server) 是用 C 语言开发
的一个开源的高性能键值对(key-value)数据库

Redis is an open source (BSD licensed),
in-memory data structure store, used as a database, 
cache and message broker.
Redis开源遵循BSD  基于内存数据存储 被用于作为数据库
缓存消息中间件
总结: redis是一个内存型的数据库

特征:
1. 数据间没有必然的关联关系
2. 内部采用单线程机制进行工作
3. 高性能。官方提供测试数据,50个并发执行100000 个请求,
4. 读的速度是110000 次/s,写的速度是81000次/s。
5. 多数据类型支持
字符串类型 string
列表类型 list
散列类型 hash
集合类型 set
有序集合类型 sorted_set
6. 持久化支持。可以进行数据灾难恢复

1.7 Redis 的应用

.properties 复制代码
为热点数据加速查询(主要场景),如热点商品、热点新闻、
热点资讯、推广类等高访问量信息等
任务队列,如秒杀、抢购、购票排队等
即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、
在线人数信息(聊天室、网站)、设
备信号等
时效性信息控制,如验证码控制、投票控制等
分布式数据共享,如分布式集群架构中的 session 分离
消息队列
分布式锁

1.8 Redis 的下载与安装

.properties 复制代码
0.准备环境
vmware15.x+
centos7.x+

1.下载redis源码包
https://redis.io/
  • 上传
.properties 复制代码
3.将下载redis资料包上传到Linux中

4.解压缩文件
yum -y install lrzsz 【安装lrzsz】
[root@localhost opt]rz [回车]{上传文件}
[root@localhost opt]# tar -zxvf redis-6.0.9.tar.gz
[root@localhost opt]# ls
containerd  redis  redis-6.0.9.tar.gz  rh

5.进入解压缩目录执行如下命令
make MALLOC=libc

6.编译完成后执行如下命令
make install PREFIX=/usr/local/redis  # 将编译好的文件放到指定目录下

make install PREFIX=/usr/local/tools/redis/redis
7.进入/usr/local/redis/bin目录启动redis服务 
./redis-server
.properties 复制代码
9.Redis服务端口默认是 6379

10.进入bin目录执行客户端连接操作
./redis-cli --p 6379

补充:
默认配置启动
redis-server
redis-server -p 6379
redis-server  -p 6380
 
指定配置文件启动
redis-server redis.conf
redis-server redis-6379.conf
redis-server redis-6380.conf ......
redis-server conf/redis-6379.conf
redis-server config/redis-6380.conf ......

默认连接
redis-cli
连接指定服务器
redis-cli -h 127.0.0.1
redis-cli -p 6379
redis-cli -h 127.0.0.1 -p 6379

基本配置
daemonize yes
以守护进程方式启动,使用本启动方式,redis将以服务的形式存在,
日志将不再打印到命令窗口中
port 6***
设定当前服务启动端口号
dir "/自定义目录/redis/data"
设定当前服务文件保存位置,包含日志文件、持久化文件
(后面详细讲解)等
logfile "6***.log"
设定日志文件名,便于查阅

1.9 bin目录下的核心文件

.properties 复制代码
redis-serve   服务器启动命令
redis-cli     命令行客户端
redis.conf    redis核心配置文件
redis-benchmark 性能测试工具
redis-check-aof AOF文件修复工具
redis-check-dump  RDB文件检查工具(快照持久化文件)

1.10 Redis 的基本操作

  • 1.信息添加
.properties 复制代码
set key value
set name ithai
  • 2.信息查询
.properties 复制代码
功能:根据 key 查询对应的 value,如果不存在,返回空(nil)
get key
get name
  • 3.清除屏幕信息
.properties 复制代码
功能:清除屏幕中的信息
clear
  • 4.退出客户端命令行模式
.properties 复制代码
功能:退出客户端
quit
exit
<ESC>
  • 5.查看帮助
.properties 复制代码
功能:获取命令帮助文档,获取组中所有命令信息名称
命令
help 命令名称
help set

127.0.0.1:6379> help get

GET key
summary: Get the value of a key
since: 1.0.0
group: string

help @组名
127.0.0.1:6379> help @string

APPEND key value
summary: Append a value to a key
since: 2.0.0

BITCOUNT key [start end]
summary: Count set bits in a string
since: 2.6.0

BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
summary: Perform arbitrary bitfield integer operations on strings
since: 3.2.0
....

1.11Redis对数据库操作的指令

  • 查看所选择库的大小:
.properties 复制代码
127.0.0.1:6379[0]> DBSIZE
(integer) 728
  • 删除特定的redis库的所有Key
.properties 复制代码
127.0.0.1:6379> flushdb  # 删除上一步select选择的redis库
OK
  • 删除所有数据库 (db0 ~ db15)的的所有Key
.properties 复制代码
127.0.0.1:6379> flushall      # 删除所有数据库
OK
  • 对key进行重命名
.properties 复制代码
rename heky(原先的key名) hashkey(新的key名)

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力

相关推荐
YL200404268 小时前
MySQL-进阶篇-锁
数据库·mysql
爱喝水的鱼丶8 小时前
SAP-ABAP:数据类型与数据对象(8篇) 第七篇:进阶优化篇——基于类型与对象特征的性能优化技巧
运维·数据库·学习·性能优化·sap·abap·开发交流
SelectDB技术团队8 小时前
PB 级自动驾驶数据秒级检索:Apache Doris 统一多模态数据平台实践
数据库·人工智能·自动驾驶·apache doris·selectdb
爱编程的小新☆8 小时前
LangGraph4j工作流框架
前端·数据库·ai·langchain·langgraph4j
programhelp_8 小时前
Google 2026 New Grad SDE VO 三轮面试详解 | 含Behavioral、Coding、Design
java·服务器·数据库
czhc11400756639 小时前
数据库520 HALCONAN安装
数据库
阿坤带你走近大数据9 小时前
Oracle中的OGG介绍
数据库·oracle
Ether IC Verifier9 小时前
TCP/IP协议握手原理详解——结合以太网连接过程
服务器·网络·数据库·网络协议·tcp/ip
宋浮檀s9 小时前
SQL注入基础+DVWA搭建
数据库·sql·安全·网络安全