Redis介绍-安装-扩展知识

一、NoSQL数据库简介

1.1技术发展引出NoSQL数据库的应用场景

技术的分类:

  1. 解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN
  2. 解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis
  3. 解决性能的问题:NoSQL(redis)、Java线程、Hadoop、Nginx、MQ、ElasticSearch

1.1.1.Web1.0时代

Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。

在这里插入图片描述
1.1.2.Web2.0时代

随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。

在这里插入图片描述

1.1.3.解决CPU、内存及IO压力

在这里插入图片描述

1.2.NoSQL数据库简介

NoSQL(Not Only SQL ),意即不仅仅是SQL,泛指非关系型的数据库。 NoSQL不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。

  1. 不遵循SQL标准
  2. 不支持ACID
  3. 远超于SQL的性能

1.2.2.NoSQL适用场景

  1. 对数据高并发的读写
  2. 海量数据的读写
  3. 对数据高可扩展性的

1.2.3.NoSQL不适用场景

  1. 需要事务支持
  2. 基于SQL的结构化查询存储,处理复杂的关系,需要及时查询的

1.2.4 Memcached 简介

  1. 出现的很早的NoSQL数据库,比Redis早
  2. 只支持简单的key-value模式,数据类型单一
  3. 底层采用单线程 + 锁的机制,相比Redis(单线程 + IO多路复用),它的效率更低
  4. 一般是作为缓存数据库辅助持久化的数据库,如MySQL
    在这里插入图片描述

1.2.5 Redis 简介

  1. 几乎覆盖了Memcached的绝大部分功能
  2. 支持持久化,主要用作备份恢复
  3. 除了支持简单的key-value模式,还支持多种数据结构的存储,比如list,set,hash,zset等
  4. 底层使用单线程 + IO多路复用,效率高
  5. 一般是作为缓存数据库辅助持久化的数据库,如MySQL

二,Redis介绍

2.1 Redis 简介

Redis 是一个开源(BSD许可)的,由C编写的,高性能的基于key-vakue的NoSQL数据库。目前市场上大多数公司都采用redis来实现分布式缓存从而提高了数据的检索效率。

2.2 Redis 优点

  1. 它是基于内存存储减少io操作所带来的性能开销,读写性能高读11w/s,写8.1w/s。

  2. 提供了丰富的数据存储结构如 字符串(string), 散列(hash), 列表(list), 集合(set), 有序集合(sorted set)与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial)索引半径查询。

  3. redis底层采用单线程实现数据的IO,所以在数据算法层面并不需要考虑并发安全性问题。Redis是单线程+多路IO复用技术。多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

  4. redis虽然是基于内存存储的但是它也支持两种持久化方式,避免因为服务器故障导致数据丢失的问题。

  5. redis一般用来实现分布式缓存,从而降低应用程序对关系型数据库检索带来的性能影响。

  6. redis应用场景:分布式锁,分布式队列,排行榜热点新闻的缓存,查找附近的人等功能。为复杂的应用提供非常方便的和成熟的解决方案。

三、Linux安装Redis

3.1 安装步骤

1.到redis官网下载redis-6.2.5.tar.gz压缩包,下载完成后使用FTP传输到Linux对应的目录下/usr/local(更改local目录的权限chmod 777 local,不然传输错误Permission is not allowed),传输完成使用命令tar -zxvf redis-6.2.5.tar.gz解压。

2.安装gcc,查看gcc版本命令:gcc - v(gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 高于4.2版本即可。

3.安装redis,使用命令make malloc=libc编译安装出现下面结果:

在这里插入图片描述
make test 编译测试出现下面结果:表示没有出错

在这里插入图片描述
输入命令:cd src && make install出现

在这里插入图片描述
4.启动redis服务: ./redis-server出现

在这里插入图片描述

redis服务会随着控制台的关闭而退出,所以我们将redis服务以后台进程的启动方式而启动。

5.配置为后台服务:
1)修改redis.conf文件vim redis.conf进入将no改成yes
在这里插入图片描述
2)将redis.conf复制到/etc/redis目录下,并改名为6379.conf,cd /etc–>mkdir redis – > cp /usr/local/redis-6.2.5/redis.conf ./ 将redis.conf拷贝到redis目录下后改名–>mv redis.conf 6379.conf
在这里插入图片描述
3)复制启动脚本到/etc/rc.d/init.d 并改名为redisd

在这里插入图片描述
4)修改复制后的redis文件,使之成为服务vim redisd进行修改
原始:
在这里插入图片描述
修改后:
在这里插入图片描述
设置开机启动并启动redisd脚本:
在这里插入图片描述
systemctl status firewalld查看防火墙状态 并添加redis端口 重新加载防火墙
在这里插入图片描述
修改redis密码:
在这里插入图片描述

3.2 报错与解决

在这里插入图片描述

四、Redis扩展知识

4.1 扩展点

1.默认16个数据库,类似数组下标从0开始,初始默认使用0号库
2.使用命令 select 来切换数据库,如: select 8
3.统一密码管理,所有库同样密码
4.dbsize查看当前数据库的key的数量
5.flushdb清空当前库
6.flushall通杀全部库

4.2 Redis IO模型

Redis采用单线程 + IO多路复用技术:多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态。比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。等到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值