redis
文章平均质量分 68
妙Lin
这个作者很懒,什么都没留下…
展开
-
Redis 6 的新功能
15、Redis 6 的新功能1、ACLRedis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。在Redis 5版本之前,Redis 安全规则只有密码控制 还有通过rename 来调整高危命令比如 flushdb , KEYS* , shutdown 等。Redis 6 则提供ACL的功能对用户进行更细粒度的权限控制 :接入权限:用户名和密码可以执行的命令可以操作的 KEY命令acl list展现原创 2022-07-18 16:26:48 · 84 阅读 · 0 评论 -
Redis 学习 --->>> 14、Redis 应用的问题和解决方式 -> 分布式锁
4、分布式锁随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题!【就是说在一个服务器上的锁在整个集群都有用】实现方案基于数据库实现分布式锁基于缓存(Redis等)基于Zookeeper每一种分布式锁解决方案都有各自的优缺点:性能:redis最原创 2022-07-18 16:26:31 · 159 阅读 · 0 评论 -
Redis 学习 --->>> 14、Redis 应用的问题和解决方式:缓存穿透、缓存击穿、缓存雪崩
14、Redis 应用的问题和解决方式1、缓存穿透key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。解决方案一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。解决方案:对空值缓存:如果一原创 2022-07-18 16:26:13 · 52 阅读 · 0 评论 -
Redis 学习 --->>> 13、Redis 集群 -> 集群故障恢复和java开启集群、集群的优缺点
6、集群故障恢复如果在运行过程中有一个机器宕机了,你遵循了一个节点一个服务器,中从分开。这样当前节点的从服务器就会顶替主服务器成为主服务器,以前的主服务器修好了重启也是从服务器。关闭一个服务器查看集群信息7f5250c87ffd7c82b187878e3939be731d557deb 192.168.126.129:6379@16379 master,fail - 1648631325134 1648631322000 1 disconnectedfe9b7bae11d2907b3c5f原创 2022-07-18 16:25:58 · 137 阅读 · 0 评论 -
Redis 学习 --->>> 13、Redis 集群
13、Redis 集群redis3.0版本后提供了 无中心化集群配置所谓无中心化集群就是:相较于过去的由反向代理服务器转发请求交给redis服务器完成数据操作,当前的无中心化集群就是直接把请求给redis,让她看着办,集群里面的主node一个操作不了就会自动转交另一个redis服务器。好处就是需要的服务器数量会减少1、什么叫集群Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。Redis 集群通过分区(part原创 2022-07-13 09:52:42 · 143 阅读 · 0 评论 -
Redis 学习 --->>> 12、Redis 主从复制 ->了解和配置主从复制
12、Redis 主从复制主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master 以写为主,Slave以读为主他的功能:读写分离,性能扩展容灾快速恢复主从复制、读写分离。让主Redis服务器负责写入操作,从Redis服务器负责被读取配置主从复制1、首先开启daemonize yesPid文件名字pidfile主从配置文件中指定端口portLog文件名字dump.rdb名字dbfilenameAppendonly 关掉或者换名字2、然原创 2022-07-13 09:52:05 · 71 阅读 · 0 评论 -
Redis 学习 --->>>11、 Redis持久化->2、AOF(Append Only File)
2、AOF(Append Only File)以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作开启 AOF可以在redis.conf中配置文件名称,默认为 appendonly.aofAOF文件的保存路径,同RDB的路径一致。appendonly yes 默认是关闭的R原创 2022-07-13 09:51:45 · 187 阅读 · 0 评论 -
Redis 学习 --->>> 11、Redis 的持久化->1、RDB(Redis Database)
11、Redis 的持久化Redis 提供了2个不同形式的持久化方式。RDB(Redis DataBase)AOF(Append Of File)1、RDB(Redis Database)在指定的时间间隔内将内存中的数据集快照写入磁盘 , 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接 **读到 ** 内存里备份如何执行Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个原创 2022-07-13 09:51:16 · 131 阅读 · 0 评论 -
redis 学习 --->>> 9、Redis 事务机制
9、Redis 事务机制1、事务的定义Redis 事务是一个单独的隔离操作: 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。2、Multi、Exec、discard从输入Multi命令开始事务,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。组队的过程中可以通过discard来放弃组队中命令的执行。3、事务的错误处理原创 2022-07-13 09:51:00 · 151 阅读 · 0 评论 -
redis 学习 --->>> 8、Redis 的最新数据类型 -> 3、Geospatial
3、Geospatial1、简介Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。2、命令geoadd< longitude> [longitude latitude member…]key随便写,后面的参数顺序添加地理位置(经度,纬度,名称)geoadd china:city 106.50 29原创 2022-07-13 09:50:38 · 114 阅读 · 0 评论 -
redis 学习 --->>> 8、Redis 的最新数据类型 -> 2、HyperLoglog
2、HyperLoglog1、简介在工作当中,我们经常会遇到与 统计相关 的功能需求,比如统计网站PV(PageView页面访问量),可以使用Redis的incr、incrby轻松实现。但像UV(UniqueVisitor,独立访客)、独立IP数、搜索记录数等 需要去重和计数 的问题如何解决?这种求集合中不重复元素个数的问题称为 基数问题 。解决基数问题有很多种方案:数据存储在MySQL表中,使用distinct count计算不重复个数使用Redis提供的hash、set、bitmaps等数原创 2022-07-13 09:50:16 · 84 阅读 · 0 评论 -
redis 学习 --->>> 8、Redis 的最新数据类型 -> 1、Bitmaps
8、Redis 的最新数据类型1、Bitmaps1、简介Redis提供了Bitmaps这个“数据类型”可以实现对位的操作:Bitmaps本身不是一种数据类型, 实际上它就是字符串(key-value) , 但是它可以对字符串的位进行操作。Bitmaps单独提供了一套命令, 所以在Redis中使用Bitmaps和使用字符串的方法不太相同。 可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。2、命令命令的中 key原创 2022-07-13 09:49:51 · 129 阅读 · 0 评论 -
redis 学习 --->>> 5、五大常用数据类型 -> 5、redis 哈希(Hash)
5、redis 哈希(Hash)1、简介Redis hash 是一个键值对集合。Redis hash是一个string类型的 field 和 value 的映射表, hash特别适合用于存储对象。类似Java里面的Map<String,Object>用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储,每次修改用户的某个属性需要,先反序列化改好后再序列化回去。开销较大。用户ID数据冗余。通过 key(用户原创 2022-07-13 09:49:26 · 72 阅读 · 0 评论 -
redis 学习 --->>> 5、五大常用数据类型 -> 6、redis 有序集合 Zset (sorted set)
6、redis 有序集合 Zset (sorted set)1、简介Redis有序集合zset与普通集合set非常相似,都是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作原创 2022-07-10 09:41:55 · 112 阅读 · 0 评论 -
redis 学习 --->>> 6、配置文件
6、配置文件root用户 来到 redis 的解压目录 cd /opt/redis-6.2.6 ,vim reids.conf 。正常是这样的流程但是配置了后台启动方式的redis后,要修改你启动redis时指定的那个redis.conf,我的这个是在 /etc/redis.conf1、Units单位配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感2、INCLUDES 部分类似jsp中的include,多实例的情况可以把公用的配置文件提取出来。就是公用配原创 2022-07-10 09:41:40 · 127 阅读 · 0 评论 -
redis 学习 --->>> 5、五大常用数据类型 -> 4、redis 集合(set)
4、redis 集合(set)1、简介Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择。并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表, 所以添加,删除,查找的复杂度都是O(1)。一个算法,随着数据的增加,执行时间的长短,如果是O(1原创 2022-07-10 09:41:25 · 52 阅读 · 0 评论 -
redis 学习 --->>> 5、五大常用数据类型 -> 3、redis 列表
3、redis 列表1、 简介单键多值Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。能在一个方向上找到当前值的下级,也能在另一个方向上找到当前值的上级。2、常用命令lpush/rpush …从左边/右边插入一个或多个值。lpop/rpop 从左边/右边吐出一个值。值在键在,值光键亡。吐出来后之就会被删除,真吐出来了原创 2022-07-10 09:41:12 · 60 阅读 · 0 评论 -
redis 学习 --->>> 5、五大常用数据类型 -> redis 键 和 redis 字符串
redis 常用数据类型操作命令: 官网1、redis 键(key)操作命令返回值 1 就是成功,0 就是有问题没成keys * -> 查看当前库所有key (匹配:keys *1)exists key -> 判断某个key是否存在type key -> 查看你的key是什么类型del key -> 删除指定的key数据unlink key -> 根据value选择非阻塞删除仅将keys从keyspace元数据中删除,真正的删除会在后续异步操原创 2022-07-10 09:40:54 · 68 阅读 · 0 评论 -
redis 学习 --->>> 3、Redis 安装和启动、关闭
3、Redis 安装和启动、关闭官网 地址Redis 官网发布的是支持 Linux 系统的版本,下载稳定版 Stable ,然后通过xftp拉到 CentOS 中。或者通过命令行安装redis 安装root 用户cd /optwget https://download.redis.io/releases/redis-6.2.6.tar.gzls解压 redis 之前需要系统中有 C 编译环境,所以先要下 C 相关资源yum install gcc -y下载好了后gcc --vers原创 2022-07-10 09:40:35 · 258 阅读 · 0 评论 -
redis 学习 --->>> 1、前言引入
1.1、技术发展1、技术的分类解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch2、Web1.0时代Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。就是普通的单体Web应用。3、Web2.0时代随着We原创 2022-07-10 09:39:58 · 54 阅读 · 0 评论 -
Redis 学习 --->>>12、Redis 主从复制 -> 操作主从复制和常见的主从复制模式
操作主从复制在主服务器中进行写入数据,可以在从服务器中获取查看。但是在从服务中不能做写操作,只能读1、如果主机挂掉将主机关闭,查看从服务器的数据,依旧存在。在重启主机,查看数据依旧存在。2、如果从机挂掉关掉一个从机,进入后查看数据没有了而且查看主从信息。发现他是主机。则需要重新设置从机。再次查看数据,发现已经同步了主机数据。说明成为从机的时候就会复制主机中的所有数据可以将配置增加到文件中。永久生效 在配置文件里面搜 REPLICATION常用的主从复制模式1、一主二仆一个原创 2022-07-13 09:52:20 · 219 阅读 · 0 评论 -
redis 学习 --->>> 7、Redis 的发布和订阅
7、Redis 的发布和订阅1、什么是订阅和发布Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。2、实现订阅和发布打开两个窗口,进入redis里面。一个窗口里面 subscribe user1[频道名] 订阅user1 频道,另一个频道里面 publish user1【向频道user1发布消息】 hello【消息】回到订阅消息的窗口就能看见发布的消息,订阅消息是通过一个个频道订原创 2022-03-26 18:10:01 · 628 阅读 · 0 评论 -
redis 学习 --->>> 2、Redis 概述
2、Redis 概述Redis是一个 开源的key-value存储系统。和 Memcached 类似,它支持存储的value类型相对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都 支持push/pop、add/remove及取交集并集和差集及更丰富的操作 ,而且这些 操作都是原子性的 。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率, 数据都是缓存在内原创 2022-07-10 09:40:16 · 49 阅读 · 0 评论