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

目录

1.redis入门

1.1 NoSQL的引言

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

1.2 为什么是NoSQL

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

1.3 NoSQL的四大分类

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

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

3.相关产品
Tokyo Cabinet/Tyrant,
Redis  内存
SSDB   硬盘
Voldemort 
Oracle BDB


1.3.2 列存储数据库
1.说明
这部分数据库通常是用来应对分布式存储的海量数据。

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

3.相关产品
Cassandra、HBase、Riak.

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

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

# 3.相关产品
- MongoDB、CouchDB、 MongoDb(4.x). 国内也有文档型数据
库SequoiaDB,已经开源。

1.3.4 图形(Graph)数据库
1.说明
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它
是使用灵活的图形模型,并且能够扩展到多个服务器上。
NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询
需要制定数据模型。许多NoSQL数据库都有REST式的数据接口
或者查询API。

2.相关产品
Neo4J、InfoGrid、 Infinite Graph、

1.3.5 NoSQL应用场景
数据模型比较简单

需要灵活性更强的IT系统

对数据库性能要求较高

不需要高度的数据一致性

1.4 Redis 简介

问题现象
海量用户
高并发

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

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

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

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

常见 Nosql 数据库:
Redis
memcache
HBase
MongoDB

1.5 电商场景

在这里插入图片描述

1.6 认识Redis

概念: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 的应用

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

1.8 Redis 的下载与安装

0.准备环境
vmware15.x+
centos7.x+

1.下载redis源码包
https://redis.io/

  • 上传
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

在这里插入图片描述

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目录下的核心文件

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

1.10 Redis 的基本操作

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

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

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力
在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐