8-4.Redis

目录

1.NoSQL概述

1.1什么是NoSQL

1.2NoSQL数据库的分类及特点

1.3常见的NoSQL数据库

2.Redis概述

2.1什么是Redis

2.2Redis的特点

2.3Redis的应用场景

3.Redis的安装及启动停止

3.1Windows下面的安装

3.2Linux下面的安装

3.2.1下载redis 

3.2.2 安装redis    

3.2.3 启动Redis

3.2.4 修改Redis的配置文件:redis.conf

4.Redis基础知识

4.1 Redis的数据类型

4.1.1 String(字符串)

4.1.2 list(列表)

4.1.3 set(集合)

4.1.4 Zset(有序集合)

4.1.5 Hash(哈希)

4.2 Redis相关命令

4.2.1 常用命令

4.2.2 String类型相关命令

4.2.3 list相关命令

4.2.4 set相关命令

4.2.5 Hash相关命令

4.2.6 Zset相关命令

4.3 解析配置文件redis.conf

5.Redis的持久化

5.1 为什么需要持久化

5.2 RDB(快照)

5.3 AOF(日志)

5.4 推举使用哪一种

6.Redis的删除策略

6.1 惰性删除

6.2 定时删除

6.3 定期删除

6.4 最终方案

7.Redis的复制

8.Redis集群配置

9.Java连接Redis

10. Spring里面使用Redis

11. Spring+Redis+MySQL做缓存

12.SpringBoot中使用Redis


1.NoSQL概述

1.1什么是NoSQL

NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库。强调Key-Value Stores和文档数据库的优点。

1.2NoSQL数据库的分类及特点

1.3常见的NoSQL数据库

NoSQL_百度百科 (baidu.com)

2.Redis概述

2.1什么是Redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

2.2Redis的特点

  1. Redis读取的速度是110000次/s,写的速度是81000次/s 适用于现在Web2.0的时代
  2. 原子性 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
  3. 支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)key(string) -value
  4. 持久化,主从复制(集群)
  5. 支持过期时间,支持事务,消息订阅。
  6. 官方不支持window,但是有第三方版本。

2.3Redis的应用场景

  • 数据缓存(提高访问性能) 

        将一些数据在短时间之内不会发生变化,而且它们还要被频繁访问,为了提高用户的请求速            度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。

  • 会话缓存(共享session)

        (session cache,保存web会话信息)

  • 排行榜/计数器

        (NGINX+lua+redis计数器进行IP自动封禁)

  • 消息队列(ActiveMQ/RabbitMQ/Kafka/RocketMQ)

        (构建实时消息系统,聊天,群聊)

            重点做缓存(数据,用户信息)

3.Redis的安装及启动停止

3.1Windows下面的安装

①解压

②运行服务端

③运行客户端

3.2Linux下面的安装

3.2.1下载redis 

          链接网址:     Redis

3.2.2 安装redis    

在Linux下创建  /root/software目录,将下载的安装包copy到software目录下

下载安装gcc命令,目的:编译redis软件

yum install gcc-c++

在software目录下解压安装包

tar -zxvf redis-6.2.4.tar.gz

把解压的文件copy到/usr/local/src里面

 cp -r /root/software/redis-5.0.7 /usr/local/src/redis

打开/usr/local/src/redis/deps进行编译依赖项

cd /usr/local/src/redis/deps

进入redis的deps目录下

make hiredis lua jemalloc linenoise

​​​​​​​打开/usr/local/src/redis,在redis下使用make命令进行编译

cd /usr/local/src/redis

make

​​​​​​​在上面的Redis目录安装把它安装到/usr/local/redis里面

mkdir  -p /usr/local/redis

make install PREFIX=/usr/local/redis

​​​​​​​验证安装是否成功

cd /usr/local/redis/bin

ls

看到如下启动文件就可以了:

 把配置文件移动到/usr/local/redis/conf目录

mkdir /usr/local/redis/conf

cp /usr/local/src/redis/redis.conf /usr/local/redis/conf

3.2.3 启动Redis

cd /usr/local/redis/bin

./redis-server /usr/local/redis/conf/redis.conf

3.2.4 修改Redis的配置文件:redis.conf

bind 127.0.0.1 -::1更改为:

# bind 127.0.0.1 -::1 

bind 0.0.0.0           #放开所有的源,让每个IP都可以访问

port 6389               #端口改为6389

daemonize yes         #daemonize no改为yes 让redis-server在后台运行

# requirepass foobared更改为:

 requirepass 密码             #设置密码

4.Redis基础知识

Redis采用单线程机制进行工作

Redis默认拥有16个数据库,数据库编号从0开始,默认使用0号数据库

使用select 数据库编号 可以切换使用的数据库

dbsize 命令查看当前数据库key的数量

keys * 命令查看当前数据库所有的key

flushdb 命令清空当前数据库

flushall 命令清空所有数据库

Redis中所有数据库使用同一个密码,默认没有密码,Redis认为安全层面应该由Linux来保证

Redis中所有索引都是从0开始

Redis默认端口是6379

4.1 Redis的数据类型

Redis有五大数据类型:String、List、Set、Zset、Hash

注意:Redis采用键值对存储数据,key永远是String类型,五大数据类型指的是value部分

4.1.1 String(字符串)

一个key对应一个value;String可以包含任何数据,比如jpg图片等;String是Redis最基本的 数据类型,一个String的value最大可支持512M

4.1.2 list(列表)

底层是一个字符串链表;可以从头或尾添加元素

注意:

(1) 添加元素时:

如果key不存在,创建新的链表
如果key已存在,添加内容
如果key的所有值全部删除,则对应的key也会随之消失

(2) 在链表的头尾操作时效率较高,但是对中间元素的操作效率较低

4.1.3 set(集合)

集合类型是由唯一,无序对象组成的集合(collection).它经常用于测试某个成员是集合中,重复项删除和集合运算(求并,交,差集),Redis的值对象可以是字符串集合。

4.1.4 Zset(有序集合)

类似Set;每个元素都会关联一个double类型的分数(score);Redis通过分数自动的为集合中的 成员进行从小到大的排序;成员不可重复,分数可以重复

4.1.5 Hash(哈希)

类似Java中的Map<String, Object>;是一个键值对集合;适合存储对象

4.2 Redis相关命令

4.2.1 常用命令

keys * 获取当前库所有的key

select index 选择第index个库

flushdb 清空当前库

del key1 删除key

expire key 10  设置key的过期时间单位是秒 放在session 设置过期时间

怎么实现一个任务在将来的某个时间点发生

ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

move k1 1 将当前的数据库key移动到某个数据库,目标库有,则不能移动

randomkey  从当前数据库中随机返回

type key 类型

exists key 判断是否存在key

pexpire key 1000 设置key的过期时间单位是毫秒

persist key 删除过期时间

4.2.2 String类型相关命令

4.2.3 list相关命令

4.2.4 set相关命令

4.2.5 Hash相关命令

4.2.6 Zset相关命令

4.3 解析配置文件redis.conf

5.Redis的持久化

5.1 为什么需要持久化

Redis对数据的操作都是基于内存的,当遇到了进程退出、服务器宕机等意外情况,如果没有持久化机制,那么Redis中的数据将会丢失无法恢复。有了持久化机制,Redis在下次重启时可以利用之前持久化的文件进行数据恢复。Redis支持的两种持久化机制:

RDB:把当前数据生成快照保存在硬盘上。
AOF:记录每次对数据的操作到硬盘上。

5.2 RDB(快照)

5.3 AOF(日志)

5.4 推举使用哪一种

6.Redis的删除策略

6.1 惰性删除

6.2 定时删除

6.3 定期删除

6.4 最终方案

7.Redis的复制

8.Redis集群配置

9.Java连接Redis

10. Spring里面使用Redis

11. Spring+Redis+MySQL做缓存

12.SpringBoot中使用Redis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值