redis
文章平均质量分 53
我是坑货
这个作者很懒,什么都没留下…
展开
-
Redis学习:Redis缓存穿透和雪崩
缓存穿透和雪崩(大规模的缓存击穿)两者的区别就是:缓存穿透是一个key缓存没数据,数据库也没有数据,请求全部打到数据库层面上,数据库也没数数据,无能为力。缓存层和数据库层都没有,真的是透了。雪崩先理解缓存击穿,就是很多请求一个key,这个key可能是压根就没有,或者过期了导致,直接打到数据库。仅仅是缓存数据层打穿,没起到作用。雪崩就是大规模的热key到期或者Redis服务器挂掉,导致大规模的缓存击穿。缓存穿透解决方法(一)布隆过滤器对所有可能查询的参数以Hash的形式存储,以便快速确定是否存在原创 2022-02-10 14:33:28 · 1070 阅读 · 0 评论 -
Redis学习:哨兵模式
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。一个典型哨兵模式哨兵配置文件sentinel monitor mymaster 127.0.0.1 6379 1哨兵模式优缺点优点:哨兵集群,基于主从复制模式,所有主从复制的优点,它都有主从可以切换,故障可以转移,系统的可用性更好哨兵模式是主从模式的升级,手动到自动,更加健壮缺点:Redis不好在原创 2022-02-10 03:29:23 · 492 阅读 · 0 评论 -
Redis学习;Redis主从复制
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower), 数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)。刚开始大家都是主机,现在要搞从机slaveof host port默认情况下,每台Redis服务器都是主节点,一个主节点可以有0个或者多个从节点,但每个从节点只能由一个主节点。作用:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余的原创 2022-02-10 03:20:53 · 338 阅读 · 0 评论 -
Redis学习:Redis发布与订阅
这里就是大概介绍Redis发布订阅的问题,实际上MQ也可以做。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:------------订阅端----------------------127.0.0.1:6379> SUBSCRIBE sakura # 订阅sakura频道Readi原创 2022-02-10 02:58:06 · 567 阅读 · 0 评论 -
Redis学习:Redis的持久化
Redis的持久化方式有两种:rdb和aofrdb理解为快照,save规则出发会的得到一个快照aof是追加的形式,可以理解为binlog那种RDB在进行 RDB 的时候,redis 的主线程是不会做 io 操作的,主线程会 fork 一个子线程来完成该操作;Redis 调用forks。同时拥有父进程和子进程。子进程将数据集写入到一个临时 RDB 文件中。当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。这种工作方式原创 2022-02-10 02:44:53 · 522 阅读 · 0 评论 -
Redis学习:redis.conf详解
Redis.conf配置文件是关于Redis重要属性的。配置好redis.conf,了解里面的属性很重要。下面是我从github上直接拷贝的代码# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/r原创 2022-02-10 02:03:26 · 2169 阅读 · 0 评论 -
Redis学习:SpringBoot整合Redis
jedis是Redis推荐的Java连接Redis客户端,但是实际上springboot2推荐的是连接Redis客户端是lettuce (实际上对应比较流行的客户端还有一个redisson),主要是jedis好久不更新对新的功能支持没有另外的好(本身Springboot2的选择也是一个侧面说明,关键是lettuce是线程安全的,jedis不是。)一 先来个jedis的简单demopom文件配置 <!--导入jredis的包--> <dependencies>原创 2022-02-08 18:48:01 · 414 阅读 · 0 评论 -
Redis学习:Redis实现乐观锁
实际这部分是接着事务那一块,加了一个watch命令。这里要有一个乐观锁和悲观锁的概念:悲观锁:很悲观,认为什么时候都会出现问题,无论做什么都会加锁乐观锁:很乐观,认为什么时候都不会出现问题,所以不会上锁!更新数据的时候去判断一下,在此期间是否有人修改过这个数据获取version更新的时候比较versionwatch命令使用watch key监控指定数据,相当于乐观锁加锁。类似一个CAS操作。127.0.0.1:6379> set money 100 # 设置余额:100OK12原创 2022-02-08 15:32:45 · 2387 阅读 · 0 评论 -
redis学习:redis的基本事务操作
Redis也有事务,数据库为保证事务正确性,会有ACID的要求原子性,一致性,隔离性,持久性。但是redis的事务记不太一样,首先我们来个对比就知道了。一 Redis事务和数据的ACID对比原子性就是一系列操作,要么失败全失败,要么成功全成功Redis的命令操作是原子性,单个执行命令成功就成功,失败就失败,但是Redis的事务不是,就是语法错误全失败,但是单独逻辑错误不会。举个例子 我对 Redis里面v1 v2添加值,对没有的v3做操作,语法没问题但是v3没有,或者对v2座做不符合类型的操作,字原创 2022-02-08 11:48:11 · 932 阅读 · 0 评论 -
redis学习:BitMap
使用位存储,信息状态只有 0 和 1。这个适合哪种记录某些状态只有两种状态的,比如说成绩及没及格,是男是女(不考虑跨性别的),上班迟没迟到,是或者不是这种。Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR,NOT以及其它位操作。命令描述setbit key offset value为指定key的offset位设置值getbit key offset获取offset位的值bitcount原创 2022-02-07 18:44:47 · 337 阅读 · 0 评论 -
redis学习:Hyperloglog的基数统计
基数可以理解为数据集中不重复的元素的个数。例如拿UV做例子网页的访问量(UV):一个用户多次访问,也只能算作一个人。先看一下Hyperloglog的基础命令命令描述PFADD key element1 [elememt2…]添加指定元素到 HyperLogLog 中PFCOUNT key [key]返回给定 HyperLogLog 的基数估算值。PFMERGE destkey sourcekey [sourcekey…]多个 HyperLogLog 合并为一个原创 2022-02-07 17:34:04 · 267 阅读 · 0 评论 -
redis学习:redis三种特殊数据之Geospatial地理位置详解
geospatial地理位置使用经纬度定位地理坐标并用一个有序集合zset保存,所以zset命令也可以使用。命令描述geoadd key longitud(经度) latitude(纬度) member […]将具体经纬度的坐标存入一个有序集合geopos key member [member…]获取集合中的一个/多个成员坐标geodist key member1 member2 [unit]返回两个给定位置之间的距离。默认以米作为单位。georadius k原创 2022-01-28 14:26:09 · 820 阅读 · 0 评论 -
redis学习:redis五大基础数据类型之Zset
这个Zset和前面的Set的不同地方是,Set是无序的集合,Zset是有序的集合。不同的是每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大的排序。score相同:按字典顺序排序有序集合的成员是唯一的,但分数(score)却可以重复。命令描述ZADD key score member1 [score2 member2]向有序集合添加一个或多个成员,或者更新已存在成员的分数ZCARD key获取有序集合的成员数原创 2022-01-27 18:02:20 · 895 阅读 · 0 评论 -
Redis学习:redis的五大基础数据类型之哈希
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。现在轮到哈希的部分。Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Set就是一种简化的Hash,只变动key,而value使用默认值填充。可以将一个Hash表作为一个对象进行存储,表中存放对象的信息。命令描述HSET key field value将哈希表 key 中的字原创 2022-01-27 17:00:25 · 1292 阅读 · 0 评论 -
redis学习:redis五大数据类型之set
set值是不能重复的,这是他的一个数据结构特性,在redis中也把set当做自己的一个基础数据类型。Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。命令描述SADD key member1[member2…]向集合中无序增加一个/多个成员原创 2022-01-27 14:22:08 · 2137 阅读 · 0 评论 -
redis学习:redis五大数据类型之List
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。根据图,我们可以定义规则将其定义为队列,栈,双端队列等。注意不区分大小写,所以我例子用的大写,自己测试命令用的小写这里list和String也一样,键值对,例子里就是一个key为list的List的键值对命令描述LPUSH/RPUSH key value1[value2…原创 2022-01-27 11:35:44 · 1951 阅读 · 0 评论 -
redis学习:redis五大数据类型的之String(字符串)
String作为redis使用最多的最广泛的数据类型。一些String的基础方法命令描述示例APPEND key value向指定的key的value后追加字符串127.0.0.1:6379> set msg hello OK 127.0.0.1:6379> append msg " world" (integer) 11 127.0.0.1:6379> get msg “hello world”DECR/INCR key将指定key的value数值进原创 2022-01-26 15:35:58 · 506 阅读 · 0 评论 -
redis学习:redisKey的基本命令
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。Redis-key在redis中无论什么数据类型,在数据库中都是以key-value形式保存,通过进行对Redis-key的操作,来完成对数据库中数据的操作。常用原创 2022-01-26 14:13:43 · 214 阅读 · 0 评论 -
redis学习:redis基本知识(基本认识和为什么Redis这么快)
1 切换数据库实际上redis是默认是16个数据库,这个你可以通过查看redis.conf来查看,如果你有可视化工具就更方便了。这是我本地的redis可视化工具展示数据库:一般来说我们都是默认用第一个,也就是数据库0,在可视化工具上切换比较方便,但是在命令行就不一样了。select 6 # 切换数据库 DB 6OK2 查看数据库大小切换到对应的数据库,我们想看一下这个数据库的大小,可以通过命令来查看#注意大写,0-15个数据库,切换到哪个就查看那个数据库的大小DBSIZE3 对数据原创 2022-01-26 11:49:25 · 296 阅读 · 0 评论 -
redis学习:redis-benchmark性能测试工具
redis-benchmark 官方提供的测试工具他的参数如下:进行性能测试(前提是在redis服务端和客户端都要启动的情况下,可以查看redis进程)进入到redis的安装目录# 测试:100个并发连接 100000请求redis-benchmark -h localhost -p 6379 -c 100 -n 100000set命令的百分比分布的延迟set命令延迟累积分布可以看到我这台服务器上的redis100000个请求不到3毫秒就完成了,这性能确实快。...原创 2022-01-25 17:06:54 · 8460 阅读 · 0 评论 -
redis学习:关于Linux环境下安装redis
实际上Redis安装这里有两个方法,一个是我们正常安装,一个是指定端口通过docker来安装(docker安装我会给几个链接)。首先我们先来的是常规redis在linux服务器环境下安装。一 下载redis,并放到服务器目录下这里我们建议是放在opt下面,因为这个目录是给第三方协力软件放置的目录。(当然了你不放,放别的目录也没关系)Linux各目录放置#解压文件tar -xzvf ./redis-6.2.6.tar.gz 二 进入redis目录,查看一下配置文件等三 安装基本环境#基本原创 2022-01-25 16:55:05 · 392 阅读 · 0 评论 -
redis学习:windows环境下安装
官网截图,实际上看不到redis的windows安装的版本,所以建议去github上对应的去找github redis 地址如下github redis 地址根据上面的readme来找到window版本的github托管地址,同样注意看里面的readme信息不管是msi安装方式server自启动,还是压缩文件双加server.exe都可以验证redis打开一个client做一个简单的set操作,如下图这就是简单一个windows环境下的redis服务的一个搭建和验证使用...原创 2022-01-25 10:43:23 · 70 阅读 · 0 评论 -
redis学习:redis入门
Redis(Remote Dictionary Server ),即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。这是一个redis有多块的介绍测试文章测试redis有多快...原创 2022-01-21 18:09:43 · 934 阅读 · 0 评论 -
redis学习:NoSQL概述
如今信息量井喷式增长,各种各样的数据出现(用户定位数据,图片数据等),数据量很大变化很快,大数据的背景下关系型数据库(RDBMS)无法满足大量数据要求。目前一个基本的互联网项目NoSQL = Not Only SQL(不仅仅是SQL)传统的 RDBMS(关系型数据库)结构化组织SQL数据和关系都存在单独的表中 row col操作,数据定义语言严格的一致性基础的事务Nosql不仅仅是数据没有固定的查询语言键值对存储,列存储,文档存储,图形数据库(社交关系)最终一致性CAP定理原创 2022-01-18 11:31:16 · 767 阅读 · 0 评论