一、Redis简介及安装实操

一、前置知识

(一)常识

  • 磁盘
    1. 寻址:ms
    2. 带宽:G/M
    3. I/O buffer:成本问题
      • 磁盘有磁道和扇区,一扇区 512Byte 带来一个成本变大–索引
      • 4K:操作系统,无论你读多少,都是最少4K从磁盘取
      • 随着文件变大,磁盘I/O会成为瓶颈,导致速度变慢
  • 内存
    1. 寻址:ms
    2. 带宽:很大

补充:

  1. 秒>毫秒>微秒>纳秒 磁盘比内存在寻址上慢了10W倍
  2. 数据在磁盘和内存中,体积不一样(2G在内存可能1.9G)

(二)关系型数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nYhzvnG5-1637893442288)(Redis简介及安装实操.assets/1637842041761.png)]

如上图所示:

  • 1页:等同于操作系统读取大小,避免浪费(data page 4k)

  • 索引:等同于1页(data page 4k)

    注意: 数据和索引都是存储在硬盘,查询时会在内存中准备一个B+Tree

特点:

  1. 关系型数据库建表时,必须给出schema(架构)

    之所给出schema是因为,这样当插入的时候,如果这行数据有列为null值,会进行占位,当更改数据时,直接在这一列中进行插入即可,避免了空间上的转换

    1. 类型:字节宽度

    2. 存:倾向于行级存储

问题引入:

​ 数据库表很大,性能下降?->表中加索引->增删改变慢->查询速度怎么样?

  1. 1个或少量查询依然很快
  2. 并发大的时候会受磁盘带宽影响速度

所以诞生了内存级别的关系型数据库SAP,HANA,但是如果数据库宕机了那么数据不能保证安全.

最后综合上述,进行折中缓存,从而出现了memcached,redis这样的数据库

注意:

​ 该数据库都依赖于两个基础设施,分别为:

  1. 冯诺依曼体系的硬件
  2. 以太网,tcp/ip网络

扩展:

  • 数据库引擎学习:https://db-engines.com/en/
  • redis中文翻译手册:http://redis.cn/

二、Redis

(一)简介

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets) 与范围查询, bitmapshyperloglogs地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

当我们学习到redis是value有类型的时候,我们应该想到:

  1. 设想如果没有redis之前,value没有类型的概念,那么应该用什么来表示复杂的数据类型呢?

    使用json来表示,如下图所示.

在这里插入图片描述

如果客户端想要从缓存中取出value值

  • memchahce ->返回的所有数据到client需要走网卡IO,且client需要实现代码来解码
  • redis->对客户端来说类型不重要,redis的server对每种类型有自己的方法,用户只需直接调用方法,这样会轻盈很多,本质是解耦(也就是计算向数据移动)

计算向数据移动 https://www.cnblogs.com/blog-of-zxf/p/10827941.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nnv4UOzo-1637893442298)(Redis简介及安装实操.assets/1637845014178.png)]

(二)安装实操

​ 安装环境

  • centos 6.x
  • redis 官网5.x http://download.redis.io/releases/redis-5.0.5.tar.gz
1. yum install wget
2. cd
3. mkdir soft
4. cd soft
5. wget    http://download.redis.io/releases/redis-5.0.5.tar.gz
6. tar xf    redis...tar.gz
7. cd redis-src
8. 看README.md(重点,通过它可以自主学习,各种步骤都里面)
9. make 
	....yum install  gcc  
	....  make distclean
10. make
11. cd src   
	....生成了可执行程序
12. cd ..
13. make install PREFIX=/opt/mashibing/redis5(将执行脚本安装到指定路径)
14.	vi /etc/profile(配置Redis全局环境)
	... export  REDIS_HOME=/opt/mashibing/redis5  
	... export PATH=$PATH:$REDIS_HOME/bin
	... source /etc/profile
15. cd utils
16.	/install_server.sh  (可以执行一次或多次)    
	从安装的过程我们可以得到如下结论:
		a)  一个物理机中可以有多个redis实例(进程),通过port区分    
		b)  可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源    
		c)	执行该命令之后会在linux的目录 > /etc/init.d/**** 下放了一个脚本 redis_6379  
			启动刚才设置的redis服务:service   redis_6379  start/stop/status    
		d)	脚本还会帮你启动!
17. ps -fe |  grep redis  

总结:
	1.下载wget下载工具
	2.添加要安装的文件夹
	3.通过wget在线下载对应的gz包
	4.解压gz包到对应的文件夹
	5.在解压的包中的src中查看README.md(重点:通过README.md文件知道后面的安装步骤)
	6.执行make命令
		如果报错提示差gcc环境,则下载gcc环境,并清理原先make的数据 make distclean
	7.重新执行make命令
	8.将执行脚本安装到指定路径
	9.配置redis全局变量
	10.安装redis服务端(生成在/etc/init.d/中设置的对应脚本,安装完后会自动启动)
	11.通过service   redis_6379  start/stop/status(启动,终止,查看状态)
	12.通过 ps -fe |  grep redis 查看redis进程
1、安装文档 2、 实验:(1) 启动redis(2) 停止redis(3)测试连接(发送命令的两种方法) 字符串类型: (4)设置一个键,获得该键值,并判断一个键是否存在 (5)删除键 (6)增和减 (7) 向尾部追加值 (8) 获取字符串长度 (9) 同时获得/设置多个键值 (10) 位操作 散列类型: (11) 为键值car设置price、name、model等“属性” (12) 判断model字段是否存在,不存在的话添加该字段,最后删除 列表类型: (13)向列表添加元素、弹出元素、获取表元素个数、获得列表片段 (14)获得/设置指定索引的元素值 集合类型: (16) 增加或删除元素以及获得集合所有元素: (17) 判断元素是否存在于集合: (18) 集合的运算差sdiff,交sinter,并sunion 有序集合类型: (19) 增加元素、获得元素分数、获得排名在某个范围的元素列表、获得制定分数范围的元素 事务: (20)MULTI开启事务,EXEC结束事务 (21)错误处理:语法错误(命令本身错误)和运行错误(命令使用类型错误) (22)watch命令(监控作用) (23)Expire,ttl,persist命令控制键的存活时间 (24)Sort排序命令 (25)构造如图表结构: (26) Sort key1 by key2 将key1按照key2的大小进行排序 (27)get:sort key1 get key2 按照key1大小进行排序,将key2结果显示出来 (28)sort、by、get结合使用: (29)获取外部键但不进行排序: (30)将下表存在哈希结构,并使用sort、by、get方法进行操作 (31)Store:将排完序的结果进行存储 (32)订阅者-发布者模式 任务队列: (33)优先级队列:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值