Redis安装及使用

导读:本篇文章讲解 Redis安装及使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、Redis介绍

1.1什么是NoSQL

NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
一些主流的NOSQL产品:
在这里插入图片描述
NoSQL数据库的四大分类如下:
键值(Key-Value)存储数据库
相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
数据模型: 一系列键值对
优势: 快速查询
劣势: 存储的数据缺少结构化

列存储数据库
相关产品:Cassandra, HBase, Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限

文档型数据库
相关产品:CouchDB、MongoDB
典型应用:Web应用(与Key-Value类似,Value是结构化的)
数据模型: 一系列键值对
优势:数据结构要求不严格
劣势: 查询性能不高,而且缺乏统一的查询语法

图形(Graph)数据库
相关数据库:Neo4J、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

1.2 什么是Redis

Redis是用C语言开发的一个开源的包含多种数据结构、支持网络、基于内存、可选持久性的高性能键值对(key-value)数据库。键值对存储数据库它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
字符串类型(string)
散列类型(hash)
列表类型(list)
集合类型(set)
有序集合类型(sortset)

二、安装Redis

2.1 安装gcc环境

安装redis需要依赖gcc环境,如果没有gcc环境,则需要安装 gcc:yum install gcc-c++

2.2 下载Redis

从官网下载,所演示的版本为4.0。
3.0 版本
http://download.redis.io/releases/redis-3.0.0.tar.gz
4.0 版本
http://download.redis.io/releases/redis-4.0.14.tar.gz
或者直接下载
wget http://download.redis.io/releases/redis-3.0.4.tar.gz
wget http://download.redis.io/releases/redis-4.0.14.tar.gz

下载好后将redis-4.0.14.tar.gz拷贝到**/usr/local/**下

2.3 解压源码

tar -zxvf redis-4.0.14.tar.gz

2.4进入解压后的目录进行编译

//进入到解压的文件
cd /usr/local/redis-4.0.14
//编译
make

2.5 安装到指定目录

可以安装到指定路径
//进入到解压的文件
cd /usr/local/redis-4.0.14
//开始安装
make install PREFIX=/usr/local/redis

2.6 配置文件

redis.conf是redis的配置文件,redis.conf在redis源码目录。
注意修改port作为redis进程的端口,port默认6379

在这里插入图片描述

三、启动Redis

3.1 前端模式启动

进入/usr/local/redis-4.0.14/src直接运行 ./redis-server 将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。如下图:
在这里插入图片描述

3.2 后端模式启动

修改redis.conf配置文件,将daemonize修改为yes 以后端模式启动。
vim redis.conf
daemonize yes

执行如下命令启动redis
cd /usr/local/redis-4.0.14/src
./src/redis-server ./redis.conf

redis默认使用6379端口
在这里插入图片描述
也可更改redis.conf文件,修改端口号:
在这里插入图片描述

四、redis停止

强行终止Redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis服务发送SHUTDOWN命令,方法为:

//进入到文件夹
cd /usr/local/redis-4.0.14
//停止redis
./src/redis-cli shutdown save
//还有一种指定端口停止
./src/redis-cli -p 6379 shutdown save
连接本机6379端口的redis服务执行shutdown停止
save:在停止redis服务之前将所有的数据持久化保存。

五、连接Redis服务端

将redis启动,执行./src/redis-cli连接redis服务端:

如果redis没有启动则会报错在这里插入图片描述
连接成功如下:
在这里插入图片描述
redis-cli连上redis服务后,可以在命令行执行命令。
ping
Redis提供了PING命令来测试客户端与Redis的连接是否正常,如果连接正常会收到回复PONG
在这里插入图片描述
set/get
使用set和get可以向redis设置数据、获取数据。
在这里插入图片描述

Redis多数据库

一个Redis实例可以包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql中创建多个数据库,客户端连接时指定连接哪个数据库。
一个redis实例最多可提供16个数据库,下标从0到15客户端默认连接第0号数据库,也可以通过select选择连接哪个数据库,如下连接1号库:
在这里插入图片描述
在1号库中查询上节设置的数据,结果查询不到:
在这里插入图片描述
如果选择一个不存在数据库则会报错:
在这里插入图片描述
注意:redis不支持修改数据库的名称,只能通过select 0、select 1…选择数据库

六、注意问题

在0号数据库存储数据,在1号数据库执行清空数据命令却把0号数据库的数据给清空了:
在这里插入图片描述
建议:不同的应用系统要使用不同的redis实例而不是使用同一个redis实例下的不同数据库

七、持久化

Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。
Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。

7.1 RDB持久化

RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘,保存在名字为dump.rdb的二进制文件中。
RDB是Redis默认采用的持久化方式,在redis.conf配置文件中默认有此下配置:

save 900 1
save 300 10
save 60 10000

save 开头的一行就是持久化配置,可以配置多个条件(每行配置一个条件)每个条件之间是“或”的关系“save 900 1”表示15分钟(900秒钟)内至少1个键被更改则进行快照,“save 300 10”表示5分钟(300秒)内至少10个键被更改则进行快照

在redis.conf中:
       配置dir指定rdb快照文件的位置
       配置dbfilenam指定rdb快照文件的名称

Redis启动后会读取RDB快照文件,将数据从硬盘载入到内存。根据数据量大小与结构和服务器性能不同,这个时间也不同。通常将记录一千万个字符串类型键、大小为1GB的快照文件载入到内存中需要花费20~30秒钟

优缺点:
缺点:
RDB每次持久化需要将所有内存数据写入文件,然后替换原有文件,当内存数据量很大的时候,频繁的生成快照会很耗性能。
如果将生成快照的策略设置的时间间隔很大,会导致redis宕机的时候丢失这段时间的数据。
优点:
应为dump.rdb文件是二进制文件,所以当redis服务崩溃恢复的时候,能很快的将文件数据恢复到内存之中。
进行数据持久化到磁盘当中,Redis主进程并不会执行I/O操作,提高redis的运行速度。

问题总结:
通过RDB方式实现持久化,一旦Redis异常退出,就会丢失最后一次快照以后更改的所有数据。这就需要开发者根据具体的应用场合,通过组合设置自动快照条件的方式来将可能发生的数据损失控制在能够接受的范围。如果数据很重要以至于无法承受任何损失,则可以考虑使用AOF方式进行持久化

7.2 AOF持久化

默认情况下Redis没有开启AOF(append only file)方式的持久化,在redis.conf可以通过appendonly参数开启:
appendonly yes
开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件。AOF文件的保存位置和RDB文件的位置相同,都是通过dir参数设置的,默认的文件名是appendonly.aof,可以通过appendfilename参数修改:appendfilename appendonly.aof。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77197.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!