为了提高系统的访问效率和降低服务器压力,我们通常会采用缓存的策略,而使用缓存可以有效地支持高性能和高并发,而我们常用redis作为缓存。 高性能: 用户第一次访问数据库中的某些数据时,是从硬盘中读取的,该过程缓慢。而操作缓存是直接操作内存,速度快。所以,当第一次访问后,将数据存储在缓存,若数据库中的数据有变动,则同步改变缓存中相应的数据。 高并发: 直接操作缓存能够承受的请求是远远大于直接访问数据库的,可以将热点数据保存到缓存中,从而使部分请求直接到达缓存,而不用经过数据库,降低服务器压力的同时,提高了并发量。 为…

2021年4月25日 0条评论 21点热度 阅读全文

一 .前期准备 Redis、Ruby语言运行环境、Redis的Ruby驱动redis-xxxx.gem、创建Redis集群的工具redis-trib.rb 二.安装配置redis redis下载地址 https://github.com/MSOpenTech/redis/releases ; 下载Redis-x64-3.2.100.zip。 集群规划有三个节点的集群,每个节点有一主一备。需要6台虚拟机。 把 redis 解压到桌面,(也可以在其他盘,怎么方便怎么来)再复制出 5 份,配置 三主三从集群。 由于 re…

2021年4月25日 0条评论 20点热度 阅读全文

什么是Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。 Redis特点 Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256…

2021年4月25日 0条评论 24点热度 阅读全文

Redis实现分布式锁 1 问题导入 使用setnx来实现分布式锁? 2 问题分析 问题1:setnx命令在参数中不能设置过期时间,要执行expire才能进行过期时间设置,不是原子性的操作,可能会在执行setnx后服务器宕机,没有设置expire,从而造成死锁现象 解决:在redis中可以使用set key value ex expireTime nx 命令来进行替换,在代码中可以使用redisTemplate.opsForValue().setIfAbsent(key, value, expireTime, Ti…

2021年4月25日 0条评论 20点热度 阅读全文

一、哈希表概述        首先简单介绍几个概念:哈希表(散列表)、映射、冲突、链地址、哈希函数。        哈希表(Hash table)的初衷是为了将数据映射到数组中的某个位置,这样就能够通过数组下标访问该数据,提高数据的查找速度,这样的查找的平均期望时间复杂度是O(1)的。        例如四个整数 6、7、9、12 需要映射到数组中,我们可以开一个长度为13(C语言下标从0开始)的…

2021年4月25日 0条评论 43点热度 阅读全文

第一步:在Redis官网下载该Windows版本的安装包,如下所示 第二步:将文件进行解压,如下图所示 第三步:控制台中切换到其解压目录下面 第四步:在控制台中输入redis-server.exe redis.windows.conf即可启动Redis 还有一种启动Redi

2021年4月24日 0条评论 14点热度 阅读全文

1.下载Redis(两种方法) 第一种方法:进入到官网:http://redis.io/download下载Redis 压缩包(推荐第一种)   第二种方法:在linux中使用如下命令直接下载Redis压缩包,但是在下载过程中容易卡死,因此不推荐使用该种方法 wget http://download.redis.io/releases/redis-5.0.3.tar.gz    下载完Redis压缩包之后将其上传至终端中 2.解压Redis压缩包 tar xzf redis-5.0.3…

2021年4月24日 0条评论 17点热度 阅读全文

问题描述:SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled  解决方法:是说Redis服务处于保护模式,我们需要修改配置文件redis.conf。将NETWORK下的protected-mode yes修改 为protected-mode no,然后重启服务(./bin/redis-server ./redis.conf)

2021年4月24日 0条评论 18点热度 阅读全文

文章目录 redis为什么快 上下文切换 为什么采用单线程 redis的I/O多路复用 epoll与select/poll区别 select/poll的几大缺点 用户态拷贝到内核态 epoll IO多路复用模型实现机制 epoll 优势详解 底层实现 总结 redis为什么快 Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。主要设计如下:(单线程和NIO会做详细的讲述) 完全基于内存,绝大部分请求是纯粹的内存操作,…

2021年4月24日 0条评论 16点热度 阅读全文

前言 在上一篇中,我们利用mysql数据库的行锁特性,实现了一个简单的分布式锁,但是从经验即可判断,数据库的分布式锁实现,在高并发场景下性能方面应该会大打折扣,当然,如果能够提前预判系统的并发并不算太大,这种实现也是没问题的,下面介绍下分布式锁的第二种实现,基于redis实现分布式锁 redis分布式锁原理 redis实现分布式锁的原理其实非常简单,即通过一个 Setnx的命令进行实现,即: SET resource_key_name resource_key_value NX PX 10000 简单解释下: re…

2021年4月24日 0条评论 18点热度 阅读全文