linux怎么查看本机内存大小
281
2022-08-25
【Redis】初识 Redis
文章目录
一、认识NoSQL
1.1 NoSQL 概念与发展1.2 为什么使用NoSQL1.3 与SQL的联系与区别1.4 拓展 - CAP定理1.5 拓展 - BASE & ACID1.6 NoSQL数据库分类
二、认识Redis三、安装Redis
1.单机安装Redis
1.1 安装Redis依赖1.2 上传安装包并解压1.3 启动
1.3.1 默认启动1.3.2 指定配置启动1.3.3 开机自启
2.Redis客户端
2.1 Redis命令行客户端2.2 图形化桌面客户端
2.2.1 安装2.2.2 建立连接2.2.3 简单使用
一、认识NoSQL
1.1 NoSQL 概念与发展
NoSQL指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。
2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。
2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false;"。因此,对NoSQL最普遍的解释是"非关联型的",强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。
1.2 为什么使用NoSQL
今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展却能很好的处理这些大的数据。
返回顶部
1.3 与SQL的联系与区别
结构化(表) & 非结构化(K-V、文档、图)
关联的 & 非关联
SQL查询 & 非SQL
ACID(事务) & BASE(无事务)
总结:
性能肯定是内存更高垂直是指SQL设计之初没有考虑到数据的分片存储,都是存贮在本地机器上,虽然支持主从但是并没有提升数据的量(仅备份层面);水平是指考虑到了分片需求,根据id通过哈希算法获取标识,将数据存储在指定的节点上
返回顶部
1.4 拓展 - CAP定理
在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer’s theorem), 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(Consistency)(所有节点在同一时间具有相同的数据)可用性(Availability)(保证每个请求不管成功或者失败都有响应)分隔容忍(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作)
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
返回顶部
1.5 拓展 - BASE & ACID
BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定义。
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:
Basically Available --基本可用Soft-state --软状态/柔性事务。 “Soft state” 可以理解为"无连接"的, 而 “Hard state” 是"面向连接"的Eventually Consistency – 最终一致性, 也是 ACID 的最终目的。
ACID | BASE |
原子性(Atomicity) | 基本可用(Basically Available) |
一致性(Consistency) | 软状态/柔性事务(Soft state) |
隔离性(Isolation) | 最终一致性 (Eventual consistency) |
持久性 (Durable) |
返回顶部
1.6 NoSQL数据库分类
类型 | 部分代表 | 特点 |
列存储 | Hbase Cassandra Hypertable | 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩, 对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 | MongoDB CouchDB | 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引, 实现关系数据库的某些功能。 |
K-V存储 | Tokyo Cabine t / Tyrant BerkeleyDB MemcacheDB Redis | 可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 | Neo4J FlockDB | 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 | db4o Versant | 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 | Berkeley DB XMLBaseX | 高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |
返回顶部
二、认识Redis
Redis诞生于2009年全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库。
“兄弟们,SQL性能不太好,咱们来重新写一个~”
特征:
键值(key-value)型,value支持多种不同数据结构,功能丰富单线程,每个命令具备原子性 (6.0单纯网络请求部分为多线程)低延迟,速度快(基于内存、IO多路复用、良好的编码)。支持数据持久化支持主从集群、分片集群支持多语言客户端
返回顶部
三、安装Redis
大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis. 此处选择的Linux版本为CentOS 7.Redis的官方网站地址:安装Redis依赖
Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:
yum install
1.2 上传安装包并解压
然后将课前资料提供的Redis安装包上传到虚拟机的任意目录:
例如,我放到了/usr/local/src 目录:
解压缩:
tar -xzf redis-6.2.6.tar.gz
解压后:
进入redis目录:
cd redis-6.2.6
运行编译命令:
make && make install
如果没有出错,应该就安装成功了。
默认的安装路径是在 /usr/local/bin目录下:
该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
redis-cli:是 redis 提供的命令行客户端redis-server:是 redis 的服务端启动脚本redis-sentinel:是 redis 的哨兵启动脚本
返回顶部
1.3 启动
redis的启动方式有很多种,例如:默认启动指定配置启动开机自启
1.3.1 默认启动
安装完成后,在任意目录输入redis-server命令即可启动Redis:
redis-server
如图:
这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C则Redis停止。不推荐使用。
返回顶部
1.3.2 指定配置启动
如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf:
我们先将这个配置文件备份一份:
cp
然后修改redis.conf文件中的一些配置:
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0bind 0.0.0.0# 守护进程,修改为yes后即可后台运行daemonize yes # 密码,设置后访问Redis必须输入密码requirepass 123456
Redis的其它常见配置:
# 监听的端口port 6379# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录dir .# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15databases 1# 设置redis能够使用的最大内存maxmemory 512mb# 日志文件,默认为空,不记录日志,可以指定日志文件名logfile "redis.log"
启动Redis:
# 进入redis安装目录 cd /usr/local/src/redis-6.2.6# 启动
查看Redis启动进程:
ps -ef | grep
停止服务:
# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,# 因为之前配置了密码,因此需要通过 -u 来指定密码redis-cli -u 123456 shutdown
返回顶部
1.3.3 开机自启
我们也可以通过配置来实现开机自启。
首先,新建一个系统服务文件:
vi
内容如下:
[Unit]Description=redis-serverAfter=network.target[Service]Type=forkingExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.confPrivateTmp=true[Install]WantedBy=multi-user.target
然后重载系统服务:
systemctl daemon-reload
现在,我们可以用下面这组命令来操作redis了:
# 启动systemctl start redis# 停止systemctl stop redis# 重启systemctl restart redis# 查看状态
执行下面的命令,可以让redis开机自启:
systemctl enable
返回顶部
2.Redis客户端
安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。这需要用到Redis客户端,包括:命令行客户端图形化桌面客户端编程客户端
2.1 Redis命令行客户端
Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
其中常见的options有:
-h 127.0.0.1:指定要连接的edis节点的IP地址,默认是127.0.0.1-p 6379:指定要连接的redis节点的端口,默认是6379-a 123456:指定redis的访问密码
其中的commonds就是Redis的操作命令,例如:
ping:与redis服务端做心跳测试,服务端正常会返回pong
不指定commond时,会进入redis-cli的交互控制台:
返回顶部
2.2 图形化桌面客户端
GitHub上的大神编写了Redis的图形化桌面客户端,地址:安装
在课前资料中可以找到Redis的图形化桌面客户端:
解压缩后,运行安装程序即可安装:
安装完成后,在安装目录下找到rdm.exe文件:
双击即可运行:
返回顶部
2.2.2 建立连接
在弹出的窗口中填写Redis服务信息:
Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。
如果是基于redis-cli连接Redis服务,可以通过select命令来选择数据库:
# 选择 0号库select 0
返回顶部
2.2.3 简单使用
在命令行客户端进行数据的访问,首先选择库编号为1,然后使用get key去获取键名:
返回顶部
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~