Redis缓存插件


中间件

Redis:缓存插件:缓存数据库、减轻数据库的压力

nginx:web服务

php:转发动态请求

tomcat:web页面,也可以实现转发动态请求

springboot:自导tomcat

在这里插入图片描述

Redis:也是一个数据库 不单单是一个缓存工具。

Redis:非关系型数据库 nosql not only sql 不仅仅是sql

非关系型数据库特点

键值对形式

key value

test1=test2

test1=10

数据的类型不是定义好的类型。

test1=10 string

Redis简介

Redis:远程字典服务器

键值对

开源的,c语言写的nosql数据库

Redis基于内存运行,所有的数据都不是保存在银盘的,而是内存。

持久化----------------定期或者人为把数据保存到硬盘。

Redis的优点

1、极高的读写速度,读速度可以达到110000秒/s 写81000次/s

2、支持丰富的数据类型,键值可以定义多种数据类型string list hash set

3、支持数据持久化,内存当中的数据保存到磁盘

4、原子性,Redis所有操作都是原子性

5、支持主从模式和高可用模式(哨兵模式),以及集群

缓存雪崩

缓存击穿

Redis基于内存运行的数据库,缓存是最常应用的场景

排行榜

计数器

存储关系

实时分析记录,日志系统。

缓存的概念

缓存是一种用于存储临时数据副本的技术。目的就是提高访问速度和性能。

缓存通常位于数据的访问路径上,数据的必经之路。可以再不直接访问原始数据的情况下,可以直接获取数据。

缓存的应用场景

web缓存

数据库缓存

对象缓存(大数据应用)

安装Redis

安装 设置编译环境

yum install -y gcc gcc- c++ make

在这里插入图片描述


tar -xf redis-5.0.7.tar.gz 
cd redis-5.0.7/src
make -j 4

在这里插入图片描述

在这里插入图片描述

/usr/local/redis/bin/redis-server

在这里插入图片描述

ln -s /usr/local/redis/bin/* /usr/local/bin/

在这里插入图片描述

修改配置文件

在这里插入图片描述

添加本机ip地址

在这里插入图片描述

重启服务

在这里插入图片描述

查看

在这里插入图片描述

进入Redis

在这里插入图片描述

-h 指定IP地址

-p:指定端口

-a:密码(没有密码可以不加)

redis-cli 命令行工具

redis-server start stop restart 控制Redis

redis-benchmark 检测Redis在本机的运行效率

redis -check-aof 修复aof持久化的文件

redis -check-rdb 修复rdb持久化的文件

在这里插入图片描述

向Redis模拟发送100个并发连接,同时发送十万个请求

向Redis模拟储存100个数据包的测试

在这里插入图片描述

Redis数据库常用的命令

基础数据类型

string:字符串

list:列表

hash:散列

set:集合 不重复的无序集合

zet:集合,有序集合。

string数据类型

在这里插入图片描述

set 创建数据

get 获取数据

创建数据

在这里插入图片描述

查看库里所有数据

在这里插入图片描述

判断是否存在

在这里插入图片描述

set 修改数值

在这里插入图片描述

查看键的类型

在这里插入图片描述

删除

删除多个用空格隔开

在这里插入图片描述

对键进行重命名

rename

在这里插入图片描述

添加密码

config set requirepass 密码

在这里插入图片描述

密码登录两种方式

在这里插入图片描述

在这里插入图片描述

string数据类型

string 类型 是redis的基础类型最大能够存储512MB数据,

数字、图片等等都是string类型

keys *

append 追加

在这里插入图片描述

递增递减

在这里插入图片描述

20.0.0.14:6379> incr mykey
(integer) 22
20.0.0.14:6379> get mykey
"22"
20.0.0.14:6379> decr mykey
(integer) 21
20.0.0.14:6379> get mykey
"21"

指定加多少

指定减多少

在这里插入图片描述

20.0.0.14:6379> incrby mykey 10
(integer) 30
20.0.0.14:6379> get mykey
"30"
20.0.0.14:6379> decrby mykey 20
(integer) 10

设置生命周期

setex 键名 存活时间 键值

在这里插入图片描述

20.0.0.14:6379> setex test 10 10
OK
20.0.0.14:6379> ttl test
(integer) 8
20.0.0.14:6379> ttl test
(integer) 7
20.0.0.14:6379> ttl test
(integer) 6
20.0.0.14:6379> ttl test
(integer) 6
20.0.0.14:6379> ttl test
(integer) 3
20.0.0.14:6379> ttl test
(integer) 3
20.0.0.14:6379> ttl test
(integer) 2
20.0.0.14:6379> ttl test
(integer) 2
20.0.0.14:6379> ttl test
(integer) 1
20.0.0.14:6379> ttl test
(integer) 0
20.0.0.14:6379> ttl test
(integer) -2
20.0.0.14:6379> ttl test
(integer) -2
20.0.0.14:6379> ttl test
(integer) -2

库 每个库之间都是独立的,彼此之间互不影响

在这里插入图片描述

移动键的位置

move mykey

在这里插入图片描述

20.0.0.14:6379> move test 1
(integer) 1
20.0.0.14:6379> select 1
OK
20.0.0.14:6379[1]> keys *
1) "test"
20.0.0.14:6379[1]> mget test
1) "10"

清空

清空当前库:flushdb

清除所有库:flushall

在这里插入图片描述

一次性创建多个键值对

在这里插入图片描述

20.0.0.14:6379> mset test1 1 test2 2 test3 3
OK
20.0.0.14:6379> keys *
1) "test1"
2) "test3"
3) "test2"
4) "mykey"

查看多个

在这里插入图片描述

20.0.0.14:6379> mget test1 test2 test3
1) "1"
2) "2"
3) "3"

list列表类型

list 打印列表所有元素

-1 是列表最后一位

在这里插入图片描述

20.0.0.14:6379> LPUSH mykey a b c d
(integer) 4
20.0.0.14:6379> lrange mykey 0 -1
1) "d"
2) "c"
3) "b"
4) "a"

在这里插入图片描述

添加元素 从头添加

在这里插入图片描述

20.0.0.14:6379> lpushx mykey e
(integer) 5
20.0.0.14:6379> lrange mykey 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"

移除数据

在这里插入图片描述

20.0.0.14:6379> lrange mykey 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
20.0.0.14:6379> lpop mykey
"e"
20.0.0.14:6379> lpop mykey
"d"
20.0.0.14:6379> lpop mykey
"c"
20.0.0.14:6379> lpop mykey
"b"
20.0.0.14:6379> lrange mykey 0 -1
1) "a"

删除数据

在这里插入图片描述

20.0.0.14:6379> lrem mykey 1 c
(integer) 0

创建索引位置

在这里插入图片描述

更换索引

在这里插入图片描述

20.0.0.14:6379> lindex mykey 4
"b"
20.0.0.14:6379> lrange mykey 0 -1
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "a"
20.0.0.14:6379> lindex mykey 5
"a"
20.0.0.14:6379> lset mykey 5 10
OK

在指定的值的前后进行替换

在前替换

在这里插入图片描述

20.0.0.14:6379> linsert mykey before 10 9
(integer) 7
20.0.0.14:6379> lrange mykey 0 -1
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "9"
7) "10"

在后面插入

在这里插入图片描述

20.0.0.14:6379> lrange mykey 0 -1
1) "f"
2) "e"
3) "8"
4) "d"
5) "c"
6) "b"
7) "9"
8) "10"

查找索引值

在这里插入图片描述

20.0.0.14:6379> lrange mykey1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
20.0.0.14:6379> lindex mykey1 0
"a"
20.0.0.14:6379> lindex mykey1 3
"d"
20.0.0.14:6379> lindex mykey1 4
"e"

Hash类型

hash类型 散列 用来存储对象,对象的类别和ID构成键名

hash存储的空间很小,占用的内存和持久化后的磁盘空间都很少

hash是一个键值对,包含多个对象和对象的值

myhash就是一个hash值,一个hash值可以存4294967295个键值对

在这里插入图片描述

20.0.0.14:6379> hset myhash id 3
(integer) 1
20.0.0.14:6379> hset myhash id1 1 id2 2 id3 3
(integer) 3
20.0.0.14:6379> hget myhash id1
"1"
20.0.0.14:6379> hget myhash id2
"2"
20.0.0.14:6379> hget myhash id3
"3"

查看多少个hash

在这里插入图片描述

20.0.0.14:6379> hlen myhash
(integer) 4

如何删除 删除多个用空格隔开

在这里插入图片描述

20.0.0.14:6379> hdel myhash id
(integer) 1
20.0.0.14:6379> hdel myhash id1 id2 id3
(integer) 3
20.0.0.14:6379> hlen myhash
(integer) 0
20.0.0.14:6379> 

查看保存的内容

在这里插入图片描述

在这里插入图片描述

20.0.0.14:6379> hmget myhash id1 id2
1) "1"
2) "2"
20.0.0.14:6379> hgetall myhash
1) "id1"
2) "1"
3) "id2"
4) "2"
20.0.0.14:6379> hkeys myhash
1) "id1"
2) "id2"
20.0.0.14:6379> hvals myhash
1) "1"
2) "2"

添加

在这里插入图片描述

set类型

无序集合:元素类型只能是string,无序集合当中元素具有唯一性,不允许重复,应用场景,set的数据用来追踪唯一性的数据,比方说IP地址

或者根据不同客户的id区分不同客户购买的同一商品

设置查看

sadd myset a b b c

在这里插入图片描述

20.0.0.14:6379> sadd myset a b b c
(integer) 3
20.0.0.14:6379> SMEMBERS myset
1) "c"
2) "b"
3) "a"

添加 相同数值不在再次添加

在这里插入图片描述

20.0.0.14:6379> sadd myset a d e
(integer) 2
20.0.0.14:6379> smembers myset
1) "d"
2) "c"
3) "b"
4) "a"
5) "e"

查看元素

另一种随意查看一个值

在这里插入图片描述

随意删除一个 和指定删除

在这里插入图片描述

移动值

先创建一个

从源合集到目的合集

在这里插入图片描述

有序合集:Sorted set zset 有序合集

元素类型都是string 元素唯一,不能重复,每个元素都会关联一个doublel类型的分数score(表示权重),通过权重的大小进行排序,权重可以相同

按照权重大小来进行排序

在这里插入图片描述

权重可以相同 成员不能相同

在这里插入图片描述

获取权重范围的值

在这里插入图片描述

索引倒序排列

在这里插入图片描述

string 基本类型

list:列表

hash:一个hash可以存储多个对象和对象值,对象名不可重复

set:无序集合,没有重复,没有权重

zset:有序集合,没有重复,按照权重进行排序。string

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值