
Redis
文章平均质量分 78
Redis
小哥骑单车
Nobody can go back and start a new begining, but anyone can start today and make a new ending.
展开
-
分布式环境下如何保证数据库和缓存的双写一致性
如何保证数据一致性?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文由以下三个部分组成:1、讲解缓存更新策略2、对每种策略进行缺点分析3、针对缺点给出改进方案正文先转载 2021-03-31 20:13:18 · 367 阅读 · 0 评论 -
使用redis进行搜索自动补全
参考《Redis In Action》:1、自动补全最近联系人在Web领域里面,自动补全(autocomplete)是一种能够让用户在不进行搜索的情况下,快速找到所需东西的技术。自动补全一般会根据用户已输入的字母来查找所有以已输入字母为开头的单词,有些自动补全甚至可以在用户输入句子开头的时候自动补充完整个句子;第一个自动补全通过使用联系人列表来记录用户最近联系过的100个人,并尝试尽可能地减少实现自动补全所需的内存;并且和Redis提供的其他结构相比,列表占用的内存是最少的,所以我们选择使用原创 2021-03-29 20:41:31 · 745 阅读 · 0 评论 -
Redis性能方面的注意事项
参考《Redis In Action》:1、Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求。 (类似于 Apache ab 程序)。你可以使用 redis-benchmark -h 来查看基准参数。redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]2、针对.原创 2021-03-29 14:59:38 · 175 阅读 · 0 评论 -
系统通过redis防止重复请求
一、大概思路如下:(1)、后台有一个单独获取token接口 A,token是一个随机唯一字符串,可以是uuid,每次调用获取返回不一样; (token也可以前端生成,减少一次前后台交互);还有一个提交业务数据的接口B(就是为了防止这个接口B,重复操作提交);(2)、在进入需要提交页面时,调用后台接口A,例如获取token = 123,并且返回给前端token(3)、前端点击提交按钮时,只调用提交接口B,此处不能再次调用获取token接口A,...原创 2021-02-05 10:39:25 · 1212 阅读 · 4 评论 -
2020-10-30 日常笔记。 登录redis客户端 NOAUTH Authentication required.
日常笔记。1、登录redis客户端redis-cli -h host -p portredis-cli -h 127.0.0.1 -p 6379出现,NOAUTH Authentication required.认证问题,应该是设置了认证密码,输入密码既可以了127.0.0.1:6379> auth "yourpassword"auth "beebank",登录ok,继续操作:...原创 2020-10-30 10:09:30 · 217 阅读 · 0 评论 -
Redis分布式锁的正确实现方式
Redis分布式锁的正确实现方式前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。转载 2020-09-06 20:01:08 · 360 阅读 · 0 评论 -
redis连接异常 redis.clients.jedis.exceptions.JedisClusterException: CLUSTERDOWN The cluster is down
遇到一个问题,因为是在测试环境,之前退出使用的kill -9暴力方式,再重新启动redis集群的时候,先并没有恢复rdb和aof,使用redis-cli客户端可以连接,说明集群已经启动来了,但是使用jedis客户端代码连接不上,抛异常:1、异常信息:Exception in thread "main" redis.clients.jedis.exceptions.JedisClusterException: CLUSTERDOWN The cluster is down at redis.c...原创 2020-05-14 11:23:38 · 8852 阅读 · 0 评论 -
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate 报错
在搭建启动springboot项目的时候,遇到一个错误:完整异常信息如下org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested except...原创 2020-04-16 17:59:32 · 15839 阅读 · 0 评论 -
Redis集群动态扩容
之前我们已经搭建好了redis集群,如果随着业务量并发的增长,需要实现动态扩容(还是按照之前模拟搭建集群的方式,我们在同一台机器上,通过不同的端口来搭建成redis集群)1、加入新master(扩容时总是先增加master,再增加slave)mkdir -m 777/usr/local/redis-cluster/redis07然后在该路径下,我们可以把之前用过的redis文件完...原创 2020-04-10 18:11:59 · 4700 阅读 · 0 评论 -
创建redis集群,遇到的一些问题
之前在创建redis单机的时候,已经搭建过一次redis;现在是在ceontos环境下,搭建集群;我是参考如下贴的:https://www.cnblogs.com/ding2016/p/7903147.html1、在创建集群的时候,需要安装ruby,来管理集群wgethttp://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.t...原创 2020-03-23 23:50:21 · 435 阅读 · 0 评论 -
centos下安装单机版redis
1、去下载适合版本的redis包http://download.redis.io/releases2、比如我要下载redis-3.0.4版本的wgethttp://download.redis.io/releases/redis-3.0.4.tar.gz3、然后 tar -zxvfredis-3.0.4.tar.gz解压,进入解压后的redis目录...原创 2020-03-16 20:27:16 · 148 阅读 · 0 评论 -
安装redis之前,安装gcc报错,更换源的问题
安装redis之前,我们需要安装gcc,但是在公司搭建的docker环境下,默认有gcc源的缓存,需要删除以前的gcc,更换一下源,下面是我的安装过程:1、先使用yum install gcc 安装gcc,2、安装gcc-c++,yum install gcc-c++,报错这里报错,使用公司自带的源,可能缺少依赖,就换了个yum源3、更换y...原创 2020-03-16 12:09:34 · 791 阅读 · 0 评论