redis优化 持久化

news/2024/9/23 11:18:44/

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.ppmy.cn/news/1501925.html

相关文章

Postman多环境测试全解析:打造灵活的API测试策略

Postman多环境测试全解析:打造灵活的API测试策略 在API开发和测试过程中,经常需要在不同的环境(如开发、测试和生产环境)中进行测试。Postman提供了多环境测试的功能,允许测试者为API定义多个运行环境,并快…

Redis-数据的极速之旅(一)

Redis基础篇 Redis的自我介绍我的核心数据结构1.字符串(String)2.哈希(Hash)3.列表(List)4.集合(Set)5.有序集合(Sorted Set) 高性能原理1.Redis为什么快&…

【Linux】CentOS更换国内阿里云yum源(超详细)

目录 1. 前言2. 打开终端3. 确保虚拟机已经联网4. 备份现有yum配置文件5. 下载阿里云yum源6. 清理缓存7. 重新生成缓存8. 测试安装gcc 1. 前言 有些同学在安装完CentOS操作系统后,在系统内安装比如:gcc等软件的时候出现这种情况:&#xff08…

Adobe正通过数字体验改变世界

在当今这个数字化飞速发展的时代,Adobe公司正以其创新的技术和卓越的产品引领着创意设计领域的变革。从Adobe发布的生成式AI工具(Adobe Firefly),到Illustrator和Photoshop的新AI功能,再到广受认可的Adobe国际认证&…

华为od-开发-终端云面试总结

华为OD - 终端云 综合来看所有的面试官都很好讲,并且会很细心的听你讲。 资面 主要问一些在校经历,做过那些项目,大学期间觉得做过的最有价值的事情,大学期间令你感到最有成就感的事情,期望薪资。 技术一面&#xff08…

最新 【Navicat Premium 17.0.8】简体中文版破解激活永久教程

官方下载地址: https://www.navicat.com.cn/download/navicat-premium 百度网盘补丁链接 链接: https://pan.baidu.com/s/11hu414Honi3Y9dPQ6-07JQ?pwd04mu 提取码: 04mu 未安装过的用户可直接跳过该步骤,如果已安装Navicat,记得先卸载干净…

项目实战——外挂开发(30小时精通C++和外挂实战)

项目实战——外挂开发(30小时精通C和外挂实战) 外挂开发1-监控游戏外挂开发2-秒杀僵尸外挂开发3-阳光地址分析外挂开发4-模拟阳光外挂开发5-无限阳光 外挂开发1-监控游戏 外挂的本质 有两种方式 1,修改内存中的数据 2,更改内存中…

hadoop学习笔记2-hdfs

3.HDFS 3.1HDFS两类节点 namenode:名称节点datanode:数据节点 1.namenode 1)namenode用来存储元数据,接收客户端的读写请求,namenode的元数据会分别保存在磁盘和内存中,保存到内存是为了快速查询数据信…