欢迎光临散文网 会员登陆 & 注册

Redis第一天学习

2023-08-01 21:04 作者:苦痛的笑  | 我要投稿

一、Redis作用:

1、从系统的层面说, CPU的速度远远高于磁盘IO的速度;所以要想提高响应速度, 必须要减少磁盘IO的操作, 但是有很多信息又是存在数据库当中的, 而每次查询数据库就是一次IO操作

比如查询用户信息的例子,通常如下图:

2、当客户端调用getUser接口的查询用户信息的时候,执行顺序1、2、3、4;由于用户信息存放在DB中,所以2、3就有一次磁盘IO;当成千上万的用户频繁的调用这个接口的时候,这个看似简单业务的接口会使整个系统变慢,降低整个系统的性能。

服务器的压力很大

用户访问量大,会导致MySQL服务器放入内存的数据过多,资源压力过大

解决问题的办法:

redis缓存可以把内存数据记录保存在硬盘中

3、当用客户端调用getUser接口查询用户信息的时候,getUser接口直接去redis中查询,如果redis中有该用户信息,直接返回,从而避免了磁盘IO操作;如果redis中没有该用户信息,则从DB查询,并且把该用户信息存放到redis中,下一次查询的时候缓存中就有了。

4、这样在服务接口(getUser)和DB中间增加了一个缓存层,看似逻辑增加了,但当面对高并发的时候,比如上边提到的频繁查询用户信息的情况,只有第一次查询有磁盘IO操作,以后只要redis中存在就没必要再查询数据库了。由于没有了磁盘IO操作,并且redis所有数据都在内存操作,所以性能会大大提升。

二、Redis 数据类型

Redis支持五种数据类型 (了解)

  • string(字符串)

  • hash(哈希)

  • list(列表)

  • set(集合)

  • zset(sorted set:有序集合)

三、Redis事务

Redis 事务可以一次执行多个命令, 并且带有以下几个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。

  • 事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。

  • 命令入队。

  • 执行事务。

以下是一个事务的例子, 它先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令:

四、Redis服务器



一. 密码设置及验证

Redis服务器默认没有密码

设置密码

临时设置:

重启Redis则会失效

永久设置密码:

取消注释并且输入需要的密码
重启端口登入Redis

五、Redis做MySQL缓存

实验:使用redis做mysql数据库缓存

实验目的:通过此实验观察redis用作数据库缓存的效果,了解在工作中如何使用redis

此项目的效果:如果直接访问数据库将在终端中显示,否则不会在终端显示

实验过程:

  1. 安装redis(略)

  2. 安装mysql(略)

  3. 配置java环境

1、配置项目配置文件

1)解压

2)在mysql中创建shopping库,将user.sql导入到shopping库

3)创建项目用户test并授权其对shopping库拥有权限

4)修改配置文件(注意所有注释的地方)

在数据库内创建用户和数据库


5. 启动项目

进入bin目录,执行 ./startup.sh

1、访问测试:启动成功后,开启另外一个终端,进行测试

curl过后,数据库端的显示内容。

六、多实例

1、创建实例目录

2、创建实例配置文件 - 修改各实例的配置 (端口,pid文件,log文件,数据目录 ... )

3、利用实例配置文件启动实例










Redis第一天学习的评论 (共 条)

分享到微博请遵守国家法律