redis优化 持久化

redis缓存中间件

nginx web服务器 缓存数据库

php 转发动态请求

tomcat 即是web页面也可以转发动态请求

springboot 自带tomcat

redis也是一个数据库,不单单是一个缓存工具。

redis 非关系型数据库 nosql not only sql 不仅仅是sql。

键值对形式

ky value

test1 = test2

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

test1=10 string

redis简介

redis 远程字典服务器

键值对

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

redis基于内存运行,所有的数据不是保存在硬盘,而是内存。

持久化的功能——定期或者人为的把数据保存到硬盘。

redis优点

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

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

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

4、原子性,redis的所有操作都是原子性。

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

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

排行榜

计数器

存储关系

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

缓存的概念

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

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

缓存的应用场景

web缓存

数据库缓存

对象缓存(大数据应用)

redis-cli -h192.168.233.10 -p 6379
-h  指定IP地址
-p  指定端口
-a  密码(没有密码可以不加)
redis-cli  命令行工具
redis-server star stop restart  控制redis
redis-benchmark  检测redis在本机的运行效率
redis-check-aof  修复aof持久化的文件
redis-check-rdb  修复rdb持久化的文件
redis-benchmark -h192.168.233.10-p6379-c100 -n 100000
向redis的主机模拟发送100个并发连接,同时发送十万个请求测试
redis-benchmark-h192.168.233.10-p6379 -9-d 100
模拟存储一百个数据包的性能测试

redis数据库常用的命令

基础数据类型

string 字符串

list 列表

hash 散列,键值对集合

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

zet 集合,有序集合

set  创建数据
get  键值对名称   获取数据
exists  键值对名称  存在返回1  不存在返回0
type  键值对名    查看类型
del  键值对名    删除   返回1成功  
rename  旧名  新名     该键值对名
config set requirepass  123456   #设置密码
auth  123456

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

数字 图片 等等都是默认string类型

append  #对值进行追加和创造
192.168.65.11:6379> incr mykey   #自增
(integer) 21
192.168.65.11:6379> decr mykey   #自减
(integer) 20
incrby mykey 10                   #指定增加
(integer) 30
192.168.65.11:6379> decrby mykey 10    #指定减少
(integer) 20
move 键值对名 1      #转移库
select 0  #切换库
192.168.65.11:6379> setex mykey 15 hello  #15秒之后就消失
OK
192.168.65.11:6379> ttl mykey
(integer) 7
192.168.65.11:6379> ttl mykey
(integer) -2
​

一次创建多个键值对

192.168.65.11:6379> mset test1 1 test2 2 test3 3
OK
192.168.65.11:6379> KEYS *
1) "test1"
2) "test3"
3) "test2"

一次查看多个键值对

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

list 列表

创建列表

192.168.65.11:6379> LPUSH mykey a b c d
(integer) 4
192.168.65.11:6379> LRANGE mykey 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
192.168.65.11:6379> LRANGE mykey 0 2
1) "d"
2) "c"
3) "b"
#0是起始位,2是索引位
192.168.65.11:6379> LRANGE mykey 2 -1
1) "b"
2) "a"
#-1 表示最后一位

插入数据

192.168.65.11:6379> LPUSHx mykey e
(integer) 5
192.168.65.11:6379> LRANGE mykey 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
# 插入时从起始位开始插入

移除数据

192.168.65.11:6379> LPOP mykey 
"e"

查看有几个元素

192.168.65.11:6379> llen mykey
(integer) 4

删除

192.168.65.11:6379> lrem mykey 2 a
(integer) 1
192.168.65.11:6379> lrem mykey 1 c
(integer) 1

删除指定位置的值

192.168.65.11:6379> LPUSH mykey a b c d e f
(integer) 6
192.168.65.11:6379> lindex mykey 4
"b"

添加值

在指定位置后添加

192.168.65.11:6379> linsert mykey after e 8
(integer) 7
192.168.65.11:6379> LRANGE mykey 0 -1
1) "f"
2) "e"
3) "8"
4) "d"
5) "c"
6) "b"
7) "a"
192.168.65.11:6379> linsert mykey after e 8
(integer) 7
192.168.65.11:6379> LRANGE mykey 0 -1
1) "f"
2) "e"
3) "8"
4) "d"
5) "c"
6) "b"
7) "a"

从左往右删

192.168.65.11:6379> rpop mykey1
"d"
192.168.65.11:6379> lrange  mykey1 0 -1
1) "a"
2) "b"
3) "c"

hash类型

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

192.168.65.11:6379> hset mykey id1 1 id2 2 id3 3
(integer) 3
192.168.65.11:6379> hlen mykey
(integer) 3
192.168.65.11:6379> hget mykey id1
"1"
192.168.65.11:6379> hgetall mykey
1) "id1"
2) "1"
3) "id2"
4) "2"
5) "id3"
6) "3"

添加

192.168.65.11:6379> hsetnx mykey id4 1
(integer) 1
192.168.65.11:6379> hgetall mykey
1) "id1"
2) "1"
3) "id2"
4) "2"
5) "id3"
6) "3"
7) "id4"
8) "1"

set集合 无序集合

元素类型只能是string,在无序集合当中元素具有唯一性,不允许重复。

应用场景,set的数据来追踪唯一的数据。

192.168.65.11:6379> sadd test a b c d
(integer) 4
192.168.65.11:6379> smembers test
1) "c"
2) "d"
3) "b"
4) "a"
​

插入时有相同数据就不重复插入

192.168.65.11:6379> sadd test a e f
(integer) 2
192.168.65.11:6379> smembers test
1) "b"
2) "a"
3) "c"
4) "d"
5) "f"
6) "e"

获取所有值和随机获取

192.168.65.11:6379> scard test
(integer) 6
192.168.65.11:6379> srandmember test
"e"
192.168.65.11:6379> srandmember test
"a"

随机删和指定删

192.168.65.11:6379> spop test
"a"
192.168.65.11:6379> spop test
"f"
192.168.65.11:6379> srem test c
(integer) 1
192.168.65.11:6379> smembers test
1) "d"
2) "b"
3) "e"

从一个集合移到另一个集合

192.168.65.11:6379> smove test test2 a  #值不能重复

有序集合 sorted set (zset)

元素类型都是string 元素唯一,不能重复

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

192.168.65.11:6379> zadd test1 1 "one"
(integer) 1
192.168.65.11:6379> zadd test1 2 "two" 3 "three"
(integer) 2
192.168.65.11:6379> ZRANGE test1 0 -1 withscores
1) "one"
2) "1"         #权重
3) "two"
4) "2"
5) "three"
6) "3"
192.168.65.11:6379> ZRANGE test1 0 -1 
1) "one"
2) "two"
3) "three"

权重可以相同

192.168.65.11:6379> ZRANGE test1 0 -1 withscores
1) "one"
2) "1"
3) "four"
4) "2"
5) "two"
6) "2"
7) "three"
8) "3"

获取权重范围

192.168.65.11:6379> zrangebyscore test1 2 5
1) "four"
2) "two"
3) "three"

五种数据类型

string 基本类型

list 列表

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

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

zset 有集合,没有重复,可以按照权重排序 string

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】Centos7 安装 redis(详细教程)

查看当前 Redis 版本: 当前的 redis 版本太老了,选择安装 Redis5。 一、使用 yum 安装 1、首先安装 scl 源 yum install centos-release-scl-rh 由于我之前已经安装过了,所以加载速度比较快,且显示已经安装成功,是最…

MongoDB整合SpringBoot

文章目录 SpringBoot整合MongoDB环境准备文档操作相关注解创建实体添加文档查询文档更新文档删除文档 小技巧:如何去掉_class属性 SpringBoot整合MongoDB https://docs.spring.io/spring-boot/docs/current/reference/html/data.html#data.nosql.mongodb.repositor…

prompt技巧(2) - 如何解决对话过程中角色反转问题

在一些角色扮演场景下,需要大模型扮演某个角色进行对话,但是在对话过程中偶尔会发生角色反转问题,如大模型扮演客户角色与销售人员进行对话,大模型有时会忘记自己身份,突然以销售人员的身份进行回答,这种情…

Postman中API测试的艺术:测试用例复用的高级技巧

Postman中API测试的艺术:测试用例复用的高级技巧 在API测试过程中,复用测试用例可以显著提高测试效率和一致性。Postman作为一个强大的API开发工具,提供了多种机制来实现测试用例的复用。本文将深入探讨Postman中API测试用例复用的技巧&…

开源一个react路由缓存库

Github仓库 背景 产品希望可以像浏览器那样每打开一个路由,会多一个tab,用户可以切换tab访问之前加载过的页面,且不会重新加载。真就产品一句话…… Github上有轮子了吗 Github上开箱即用的轮子是基于react-router-dom V5实现的&#xff…

ubuntu上部署vue项目到ngixn中+SpringBoot项目+postgresql数据库

文章目录 前提1.Ubuntu上安装ngix2.部署Vue项目2.1上传vue项目2.2.配置 3.Ubuntu上安装Postgres4.部署springboot项目 前提 记一次在ubuntu部署前端vue和后端springboot项目,以及数据库postgresql的安装以及启动、停止等常用的命令。 1.Ubuntu上安装ngix 1、检查…

java解决全排列问题

java解决全排列问题 全排列问题1 给定一个可包含重复数字的序列 nums ,按任意顺序返回所有不重复的全排列。 思路 我们把问题看成n个排列成一行的空格,从左往右依次填入给定的n个数,每个数只能使用一次,可以使用回溯法。 递归函数…

Cuppa CMS v1.0 任意文件读取漏洞(CVE-2022-25578)

前言 春秋云镜靶场是一个专注于网络安全培训和实战演练的平台,旨在通过模拟真实的网络环境和攻击场景,提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点: 实战演练: 提供各种网络安全攻防演练场景&#…

yolo模型训练出的.pt文件过大

当我们使用yolov8训练时候,保存的模型变大,如下图: 原模型 训练出来的模型 经过仔细调查,发现是保存的模型中多了很多数据。 原模型 训练出来的模型 只需要把文件中.pt文件读取,重写一遍保存。 from ultralytics im…

深入源码:解析SpotBugs (6)jvm 字节码简介

文章目录 一、JVM字节码概述一、文件结构概述二、详细解析1. 魔数和Class文件的版本2. 常量池3. 访问标志4. 类索引、父类索引与接口索引集合5. 字段表和方法表6. 属性表 字节码Spotbugs 作为一名资深的Java开发工程师,对JVM及其字节码有着深入的理解。现在&#xf…

Linux基于centOS7 【进度条】【Git】【gdb】学习

目录 进度条 进度条的前置准备 sleep (秒)& usleep(微秒) sleep加\n和不加\n的区别 IO函数的缓冲区 回车&换行 10秒倒计时 进度条编写 git的使用 为什么要有git(git版本控制器) git的主要…

windows上启动Kafka

官网下载 如:kafka_2.13-2.4.0.tgz 新版集成了Zookeeper ,无需另行下载 解压 至D:\Kafka\kafka_2.13-2.4.0 下 配置Kafka(可跳过) Zookeeper配置 kafka\config\zookeeper.properties下修改dataDir路径(Zookeeper数据目录)dataDirD:\\Program…

江科大/江协科技 STM32学习笔记P13

文章目录 TIM定时中断1、TIM简介计数器PSC预分频器ARR自动重装寄存器 2、定时器类型基本定时器主模式触发DAC 通用定时器高级定时器 3、定时器原理定时中断基本结构预分频器时序计数器时序RCC时钟树 TIM定时中断 1、TIM简介 定时器的基准时钟一般都是主频72MHz,如果…

Java 不可变Map练习 (2024.7.28)

CollectionExercise3 package CollectionExercise20240728;import java.util.HashMap; import java.util.Map; import java.util.Set;public class CollectionExercise3 {public static void main(String[] args) {// 不可变的Map集合// Map中键是不可以重复的// Map中的of方法…

业绩增长新引擎:智能名片如何助力销售突破

01、智能名片,营销增长利器 在当今竞争激烈的市场环境下,企业正面临着类似品牌曝光不足、销售线索获取困难、客户关系维护复杂等诸多挑战。为帮助企业解决相关难题,促进业绩高效增长,纷享营销通的 智能名片 应运而生&#xff0…

【Linux中Shell的功能】

一、Shell概念 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。S…

Leetcode—74. 搜索二维矩阵【中等】

2024每日刷题&#xff08;149&#xff09; Leetcode—74. 搜索二维矩阵 实现代码 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size();int n matrix[0].size();int l 0;int r m * n;int mid -1…

DB-gpt + one-api + kimi-free-api 真香

# 1. 新建文件夹 one-api 和 子目录 mkdir -p /docker/one-api/data# 运行容器one-api docker run --name one-api -d --restart always -p 3333:3000 \ -e TZAsia/Shanghai -e REDIS_CONN_STRINGredis://192.168.0.3:6379 -e SYNC_FREQUENCY60 -e SQL_DSNroot:123456tcp(192.1…

springboot整合junit-用于测试用例

package impl;public interface BookDao {public void save(); }第一步&#xff1a;打开软件&#xff0c;点击file&#xff0c;点击new 然后选择module&#xff0c;在右侧选择springboot 第二步&#xff1a;选择配置和JDK以及java版本 ①选择maven类型 ②选择JDK1.8版本 ③选…

极限两边夹定理

极限两边夹定理 1. 定义 两边夹定理 (又称作夹逼定理) 说的是&#xff0c;如果一个函数 f f f 被夹在函数 g g g 和函数 h h h 之 间&#xff0c;当 x → a x \rightarrow a x→a 时&#xff0c;这两个函数 g g g 和 h h h 都收敛于同一个极限 L L L&#xff0c;那么当…