论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
PostgreSQL
›
Redis从入门到精通(一)Redis安装与启动、Redis客户端的 ...
Redis从入门到精通(一)Redis安装与启动、Redis客户端的利用 ...
天津储鑫盛钢材现货供应商
金牌会员
|
2024-8-17 05:24:52
|
显示全部楼层
|
阅读模式
楼主
主题
862
|
帖子
862
|
积分
2586
写在最前
工作中开发的几个项目,险些都用到了Redis,但是呢我发现我也只是会简单地存储数据、取出数据,至于性能怎么样?如何由数据库0切换到其他的15个数据库(Redis分为16个数据库),一概不知。以是我就想着要对Redis体系深入地学习一下。
网络上其实有非常多的学习资料,颠末比较,我最终选定的资料包括:
网站:黑马步调员-Redis入门到精通 http://yun.itheima.com/course/994.html?capid=1$javaeezly
网站:Redis官方文档 https://redis.io/docs/
网站:桌面可视化工具 https://github.com/qishibo/AnotherRedisDesktopManager/releases/tag/v1.6.3
下面就开始Redis的学习吧!
第1章 Redis概述
1.1 初识Redis
Redis是一种键值型的NoSQL数据库。
这里有两个关键词:
键值型
NoSQL
其中,键值型是指Redis中存储的数据都是以
key-value对
的情势存储的,key只能是字符串,而value的情势多种多样,可以是字符串、数值、json等。
1.1.1 NoSQL
NoSQL可以翻译为
Not Only SQL(不仅仅是SQL)
,大概
No SQL(非SQL)
。它是相对于关系型数据库而言的,泛指非关系型数据库。
关系型数据库和非关系型数据库有很大的差异,主要包括7个方面:
1)数据结构
关系型数据库是
结构化数据
,每一张表都有严格的约束信息,比方规定字段的数据范例、长度、是否为空、是否为主键等等,插入的数据必须遵守这些约束;
非关系型数据库则对数据库格式
没有严格约束
,可以是键值型、文档型,以致是图格式。
2)数据关联
关系型数据库的表与表之间每每
存在关联
,比方外键:
非关系型数据库则
不存在关联关系
,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合。
3)查询方式
关系型数据库会基于SQL语句做查询,语法有
统一标准
;
非关系型数据库则
语法差异很大
,差别数据库之间语法不一样。
4)事务特性
关系型数据库能满足事务
ACID原则
,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、恒久性(Durability),它们是数据库事务处理的四个基本特性。
非关系型数据库则每每
不支持事务
,大概不能严格包管ACID特性,只能实现基本的一致性。
5)
存储方式
关系型数据库
基于磁盘
举行存储,会有大量的磁盘IO,对性能有肯定影响。
非关系型数据库的操作更多是
依靠于内存
,而内存的读写速度非常快,因此性能更好。
6)
扩展性
关系型数据库集群模式一样平常是
主从模式
,主从数据一致,起到数据备份的作用,成为
垂直扩展
。
非关系型数据库集群模式一样平常是
将数据举行拆分
,分别存储在差别的节点上,因此可以保存海量数据,可以解决内存巨细有限的题目。
1.1.2 Redis的特点与优势
Redis诞生于2009年,全称是
Remote Dictionary Server(远程词典服务器)
,作者是Antirez,是一个基于内存的键值型NoSQL数据库。
它的特点包括:
1)Redis是
内存型数据库
,即key-value对存储在内存中,故
效率
此磁盘型数据库要高。
2)Redis采用
单线程工作模式
,即网络I/O和数据读写是由⼀个线程来完成的。
查阅了一些资料,官方FAQ表示:
因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的巨细大概网络带宽。既然单线程轻易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
看完其实照旧不太明白,这个疑问先放着,也许在接下来的学习中也顺理成章地明白了。
3)key-value对中的value值既可以是字符串,也可以是
复杂的数据范例
,如链表、聚集、Hash表等。
4)Redis支持
数据恒久化
,可以采用RDB、AOF、RDB+AOF这3种方案。及其重启后可以从磁盘中举行数据规复。
5)Redis支持
主从结构
,可以利用从实例举行数据备份。
Redis支持10万以上的QPS(Queries-per-second,每秒查询率),其性能之以是高,主要缘故原由有:
1)Redis的绝大部分命令处理只是纯粹的
内存操作
,内存的读写速度黑白常快的。
2)Redis提供
单线程多进程
服务,避免了不须要的上下文切换,不存在加锁、开释锁等同步操作。
3)Redis利用
多路I/O复用模型
(select、poll、epoll),可以高效处理大量并发连接。
一会单线程,一会多进程,然后又是多路I/O、高并发,虽然知道肯定是不辩论的,但是轻易肴杂。跟上面一样,也不太明白,那就都先带着这个疑问吧!!
4)Redis中的数据结构是专门设计的,
增编削查等操作相对简单
。
1.2 安装Redis
此处基于Linux体系来安装Redis,Linux版本为CentOS 7,Redis版本为官网目前的最新稳定版本7.2.4。
1.2.1 安装依靠库
Redis是基于C语言编写的,因此首先需要安装gcc依靠:
yum install -y gcc tcl
复制代码
1.2.2 安装Redis
利用wget命令拉取官网的最新版本Redis并解压:
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar -zxvf redis-7.2.4.tar.gz
复制代码
然后举行编译:
cd redis-7.2.4
make && make install
复制代码
安装完成,
默认的安装路径是/usr/local/bin
:
redis-cli
:redis提供的命令行客户端。
redis-server
:redis的服务端启动脚本。
redis-cli
:redis的哨兵模式启动脚本。
该目次下已经默认设置到环境变量,因此可以在任意目次下运行这些命令。
1.2.3 启动Redis
Redis的启动方式有多种,包括
默认启动、指定设置启动、开启启动
等。
1.2.3.1 默认启动
安装完成后,在任意目次下输入redis-server命令即可启动Redis,如图:
这种方式属于
前台启动
,会阻塞整个会话窗口,窗口关闭大概按下CTRL+C时,Redis也会停止。
1.2.3.2 指定设置启动
如果要让Redis以
背景
方式启动,则必须修改Redis设置文件,即Redis解压后目次下的redis.conf文件:
先将redis.conf设置文件备份一份:
cp redis.conf redis.conf.bak
复制代码
然后修改redis.conf设置文件中的一些设置:
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问
# 修改为0.0.0.0则可以在任意IP访问
# 注意生产环境不会设置为0.0.0.0
bind 0.0.0.0
# 监听端口,默认6379
port 6379
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis需要输入密码
requirepass 123321
# 工作目录,默认是当前目录,也就是运行redis-server命令时的目录
# 日志、持久化等文件会保存在这个目录
dir ./
# 数据库数量,设置为1代表只使用1个库,默认有16个,编号为0-15
databases 1
# 设置Redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志
logfile "redis.log"
复制代码
最后,指定设置文件启动Redis:
# 进入Redis解压后目录
cd /root/redis-7.2.4
# 指定配置文件启动Redis
redis-server redis.conf
复制代码
启动后,会话窗口不会有任何提示,但可以通过查察日志文件redis.log来确定是否已启动成功:
如果要停止服务,可利用以下命令:
# 利用redis-cli来执行shutdown命令,即可停止Redis服务
# 因为之前配置了密码,因此需要通过 -a 来指定密码
redis-cli -a 123321 shutdown
复制代码
1.2.3.3 开机自启
也可以通过设置将Redis服务设置为开机自启,方便利用。
首先,新建一个体系服务文件:
vi /etc/systemd/system/redis.service
复制代码
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
# 根据实际解压和安装位置进行配置
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
复制代码
然后重载体系服务:
systemctl daemon-reload
复制代码
完成以上设置,就可以利用以下命令来操作Redis的启停了:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
复制代码
执行下面的命令,可以让redis开机自启:
systemctl enable redis
复制代码
1.3 Redis客户端
Redis安装完成,就可以操作Redis实现数据的CRUD了,这就需要利用Redis客户端。
Redis客户端包括:命令行客户端、图形化桌面客户端、编程客户端。
1.3.1 命令行客户端
Redis安装完成后,就自带了命令行客户端:redis-cli,其利用方式如下;
redis-cli [options] [commonds]
复制代码
常见的options有:
-h 127.0.0.1:指定要连接的Redis节点的IP所在,默认是127.0.0.1。
-p 6379:指定要连接的Redis节点的端口,默认是6379。
-a 123321:指定Redis的访问密码,在设置文件redis.conf中设置。
而commonds就是Redis的操作命令,比方ping,就是与Redis服务端做心跳测试,服务端正常会返回pong:
如果不指定commonds,则会进入交互控制台:
如果options中没有指定-a 123321,则进入控制台后可以利用auth 123321举行授权。
1.3.2 图形化桌面客户端
选用的是GitHub大神写的客户端,所在:https://github.com/qishibo/AnotherRedisDesktopManager/releases/tag/v1.6.3
安装后运行该客户端,界面如下:
点击左上角New Connection,创建一个新连接:
点击确定,建立连接,成功后界面会表现Redis服务端的一些基本信息,如版本、内存、状态等:
1.3.3 编程客户端
编程客户端就是通过编写代码来连接Redis。在Redis官网中,提供了各种编程语言的客户端:https://redis.io/docs/clients/。
其中Java客户端又包含Jedis和Lettuce两种:
1.4 小结
第1章到此就学习完毕了,本章的主题是:
Redis概述
。回顾一下本章的学习的内容:
(一)Redis介绍、Redis的安装和启动、Redis客户端
更多内容请查阅分类专栏:Redis从入门到精通
第2章主要学习:
Redis数据范例和常见命令
。包括:
Redis通用命令;
String范例;
Hash范例;
List范例;
Set范例;
SortedSet范例。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
天津储鑫盛钢材现货供应商
金牌会员
这个人很懒什么都没写!
楼主热帖
linux shell 脚本 入门到实战详解[⭐建 ...
Flutter 3.0 发布啦~快来看看有什么新 ...
我与Java Boy的10年-从小白到资深架构 ...
读Java性能权威指南(第2版)笔记06_数 ...
zset底层的数据结构为什么使用调表而不 ...
腾讯会议使用OBS虚拟摄像头
软件测试
SpringBoot中Tomcat和SpringMVC整合源 ...
影音娱乐应用开发,这些关键词请查收 ...
深度解析KubeEdge EdgeMesh 高可用架构 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表