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名)
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力
