![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 86
HX_2022
这个作者很懒,什么都没留下…
展开
-
Redis(九) 关于缓存在高并发下的一些问题
一、缓存击穿 定义: 缓存中的key一般设有过期时间,如果某个key过期了,恰在这个时候,有大量的并发请求访问这个key,则这些请求都会到达DB,导致DB瞬间压力过大,压垮DB。 解决方案: 1.设置互斥锁,mutex。当缓存失效时不时立即去访问数据库,而是使用缓存工具的操作成功带返回值的操作,比如redis的setnx(set if not exit),memcache的add,利用setnx实现锁的效果。 缺点:可能造成死锁,或线程池阻塞 2.提前使用互斥锁 redist的超时时间是timeout1,v原创 2021-02-25 16:47:06 · 159 阅读 · 0 评论 -
Redis(八) 备份、删除和淘汰机制
一、备份机制 AOF、RDB和复制功能对于过期键的处理: ①RDB对过期键的处理机制 在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中。 举个例子,如果数据库中包含三个键k1、k2、k3,并且k2已经过期,那么当执行SAVE命令或者BGSAVE命令时,程序只会将k1和k3的数据保存到RDB文件中,而k2则会被忽略。 因此,数据库中包含过期键不会对生成新的RDB文件造成影响。 载入RDB文件: 在启动Redis服务原创 2021-02-25 16:44:40 · 494 阅读 · 0 评论 -
Redis(七) 线程模型
一、文件事件处理器 Redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 redis才叫做单线程的模型。 它采用 IO 多路复用机制同时监听客户端的多个连接(多个 socket),根据 socket 上的事件来选择对应的事件处理器进行处理。 文件事件处理器的结构包含4个部分: 多个 socket(客户端连接) IO 多路复用程序(支持多个客户端连接的关键) 文件事件分派器(将 socket 关联到相应的事件处理器) 事件处理器(包括连接应答处理器、.原创 2021-02-25 16:29:01 · 1206 阅读 · 2 评论 -
Redis(六) 集群
一、简介 Redis集群是Redis提供分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能。 节点:一个Redis 集群通常有多个节点(node)组成,开始时每个节点相互独立,都处于找一个包含自己的集群中,要组建一个真正工作的集群,需要将各个独立的节点连接起来,构成一个多节点的集群。 集群中至少应该有奇数个节点,所以搭建集群最少需要3台主机。同时每个节点至少有一个备份节点,所以下面最少需要创建使用6台机器,才能完成Redis Cluster集群(主节点、备份节点由redis-cluste原创 2021-02-25 15:30:37 · 262 阅读 · 0 评论 -
Redis(五) 事务
一、简介 Redis的事务并没有关系型数据库的事务那么复杂,只有几个命令就可以解决:multi/exec/discard/watch/unwatch. Redis 事务可以一次执行多个命令(允许在一次单独的步骤中执行一组命令), 并且带有以下两个重要的保证: 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。 Redis会将一个事务中的所有命令序列化,然后按顺序执行; 执行中不会被其它命令插入,不许出现加塞行为。 一个事务从开始到执行会经历以下三个阶段: 开始事务 命原创 2021-02-23 23:34:27 · 83 阅读 · 0 评论 -
Redis(四) 常见命令和应用场景(下)
一、List类型 1、简介 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素) ,类似JAVA中的LinkedList 2、List命令 赋值语法: LPUSH key value1 [value2] 将一个或多个值插入到列表头部(从左侧添加) RPUSH key value1 [value2] 在列表中添加一个或多个值(从右侧添加) LPUSH原创 2021-02-23 15:16:30 · 165 阅读 · 0 评论 -
Redis(三) 常见命令和应用场景(中)
一、Java连接Redis 在官方网站列一些Java客户端访问,有:Jedis/Redisson/Jredis/JDBC-Redis等,其中官方推荐使用Jedis和Redisson。常用Jedis。 开始在Java 中使用 Redis 前, 我们需要确保已经安装了 redis服务及Java redis驱动,且你的机器上能正常使用Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装Java redis 驱动。 安装相应JAR: <dependency> &l原创 2021-02-23 14:49:59 · 185 阅读 · 1 评论 -
Redis(二) 常见命令和应用场景(上)
Redis(二) 常见命令和应用场景 一、基本命令概述 Redis 命令用于在 redis 服务上执行操作。 要在 redis 服务上执行命令需要一个redis客户端。 Redis 客户端在我们之前下载的redis的安装包中。 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等 二、关于Redis的键key 1、关于key的操作 Redis 键命令用于管理 redis 的键 DEL key 该命令用于在 ke原创 2021-02-23 14:29:55 · 103 阅读 · 0 评论 -
Redis(一) Redis简介和安装
一、Redis简介 1、关于Redis Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。(Vmware在资助着redis项目的开发和维护) BSD是"Berkeley Software Distr.原创 2021-02-23 13:52:15 · 201 阅读 · 1 评论 -
Redis分布式锁(一)
Redis实现分布式锁和Redission的简介原创 2020-07-21 18:50:51 · 173 阅读 · 0 评论