Redis
Redis 相关问题
一朵风中摇曳的水仙花
世人多愿锦上添花,却少有人雪中送炭
展开
-
Redis分布式锁-SETNX实现
Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。用SETNX实现分布式锁利用SETNX非常简单地实现分布式锁。例如:某客户端要获得一个名字foo的锁,客户端使用下面的命令进行获取:SETNX lock.foo <current U...转载 2019-11-18 10:44:16 · 190 阅读 · 0 评论 -
Redis 架构和运维必懂的10个知识
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。如今,互联网业务的数据正以更快的速度在增长,数据类型越来越丰富,这对数据处理的速度和能力提出了更高要求。Redis 是一种开源的内存非关系型数据库,给开发人员带来的体验是颠覆性的。在自始至终的设计过程中,都充分考虑高性能,这使得 Redis 成为当...转载 2019-01-17 15:08:23 · 311 阅读 · 0 评论 -
redis报-ERR max number of clients reached错误
说明:redis报max number of clients错误,可能是因为客户端接入太多,也是可能是因为系统最大文件描述符数过小。 redis连接池在关闭项目的时候,需要收回连接池,不然redis在开发的过程中,所有开发人员本地项目连接redis服务器,经常重启项目会累积很多不能释放的连接, 1.碰到因为客户端接入太多,可以通过修改redis.conf的maxclients ...转载 2019-01-10 19:27:55 · 3123 阅读 · 0 评论 -
redis info 命令查看redis使用情况
用客户端连接redis服务器: redis-cli >> info : server : 一般 Redis 服务器信息,包含以下域: redis_version : Redis 服务器版本redis_git_sha1 : Git SHA1redis_git_dirty : Git dirty flagos : Redis 服务器的宿主操作系统arch_bi...转载 2019-01-10 19:24:29 · 1493 阅读 · 0 评论 -
一行shell查看redis 连接数分布
背景线上某个redis连接数过万,老报警,于是产生刚需:快速知道某个redis的client分布. 用于快速找出连接数占用最多的客户端.shell习惯python的老司机处理这点小事,那还不是手到擒来.可是偶尔不也想装个逼,用shell么?先上代码,接着解读#!/bin/bashhost=$1 port=$2echo $host: $port redis-cli ...转载 2019-01-10 19:05:07 · 1770 阅读 · 0 评论 -
redis.conf 配置文件
#GENERAL protected-mode nodaemonize yes port 6379 save 900 1save 300 10save 60 10000logfile "/usr/redis/log/redis-6379.log"maxmemory 4000m requirepass key@creditcardtcp-backlog 511 ...原创 2019-01-05 15:27:05 · 188 阅读 · 0 评论 -
redis基本开启关闭 连接数查询的linux命令
//查看当前redis各个连接的ip以及其连接数 netstat -anp |grep 6379 |grep ESTA|awk '{print $5 }'|awk 'BEGIN{FS=":"}{print $1 }'|sort|uniq -c //进入redis客户端 ./redis-cli -a key@creditcard //查看当前的redis情况 INFO //关闭redis...转载 2019-01-10 16:10:20 · 2058 阅读 · 0 评论 -
redis中以层级关系、目录形式存储数据
使用redis存储数据的时候,有时候为了查看的方便,通常会有层级或者说是目录,这时候我们在set的时候,需要将key值使用“:”的符号来区分层级关系,比如:set(“a:b”, “123”),那么在redis中就是a目录下的key值为b的value为123。...转载 2018-12-26 20:46:52 · 2383 阅读 · 1 评论 -
Redis用作消息队列
Redis不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列。如下图所示: 由于Redis的列表是使用双向链表实现的,保存了头尾节点,所以在列表头尾两边插取元素都是非常快的。 所以可以直接使用Redis的List实现消息队列,只需简单的两个指令lpush和rpop或者rpush和lpop。简单示例如下:存放消息端(消息生产者): ...转载 2018-11-21 16:05:52 · 132 阅读 · 0 评论 -
redisTemplate模糊删除实现
redis 没有直接提供模糊删除的实现,我们可以根据现有的指令进行组合实现:/** * @author huoNan * @version 1.0 * @package com.cyipp.skynet.dcms * @className AppTest * @description 测试类 * @time 2018/8/16 16:24 */@RunWith(SpringR...转载 2018-11-05 14:26:48 · 9940 阅读 · 0 评论 -
Jedis Redis 模糊匹配 取得 key 列表
往Redis中初始化几条测试数据:china:beijingchina:shandong:hezechina:shandong:jinan 测试代码:Java代码 Jedis jedis = new Jedis("10.110.20.152", 6379); Set<String> set = jedis.keys("china...转载 2018-11-06 09:49:06 · 8678 阅读 · 1 评论 -
redis客户端之jedis和sharedJedis
前提:首先我们得区分2.x和3.x版本,因为3.x版本开始支持redis集群问题:那么在2.x怎么进行redis服务器扩展解决方式:横向扩展(多个相互独立的主从服务器群)服务器搭建在此不进行叙述 那么问题又来了,jedis在未集群的情况下只能操作单redis服务器,jedis客户端怎么对横向扩展的服务器群进行数据操作解决方式:使用SharedJedis来实现分布式缓存...转载 2018-11-06 09:37:47 · 535 阅读 · 0 评论 -
redis linux 命令模糊删除key
摘要: redis-cliKEYS"pattern"|xargsredis-cliDELRediskeys命令支持模式匹配,但是del命令不支持模式匹配,有时候需要根据一定的模式来模糊删除key,这时只能结合shell命令来完成了。具体命令是:redis-cliKEYS"pattern"|xargsredis-cliDEL其中pattern是keys命令支持的模式,这样就可以模糊删除key了...转载 2018-11-06 09:30:12 · 19032 阅读 · 0 评论 -
java redis通过key模糊删除,批量删除,批量查询相关数据
@RunWith(SpringRunner.class)@SpringBootTestpublic class RedisTest {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedisTemplate redisTemplate;/*** ...转载 2018-11-06 09:27:32 · 5333 阅读 · 0 评论 -
RDB和AOF持久化对比
Redis提供了RDB持久化和AOF持久化,本篇文章中将会对这两种机制进行一些对比RDB机制的优势和略施RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动...转载 2018-10-22 15:44:44 · 102 阅读 · 0 评论 -
Redis设置和更新Key的过期时间
EXPIRE key seconds为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile)。生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSET 命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带生存时...转载 2018-09-29 19:34:12 · 17777 阅读 · 0 评论 -
Jedis操作Redis--Set类型
/** * Set(集合) * SADD,SCARD,SDIFF,SDIFFSTORE,SINTER,SINTERSTORE,SISMEMBER,SMEMBERS,SMOVE,SPOP,SRANDMEMBER,SREM,SUNION,SUNIONSTORE,SSCAN */public class SetTypeTest { private Jedis jedis; p...转载 2018-09-29 19:27:50 · 241 阅读 · 0 评论 -
mybatis+redis+mybatis-redis实现二级缓存
mybatis-redis源码: https://github.com/mybatis/redis-cachemybatis-redis官网说明: http://www.mybatis.org/redis-cache/index.html说明:1、MyBatis默认开启二级缓存2、MyBatis默认实现了自己的二级缓存(PerpetualCache),内部使用HashMap实现,无...转载 2019-01-08 16:02:01 · 176 阅读 · 0 评论 -
redis作为mybatis的二级缓存
redis作为二级缓存服务器,来替代mybatis的二级缓存,至于二级缓存有什么缺点我想大家都懂吧, [service] 2016-08-31 21:01:32,912 - com.erp.dao.TestMybatisMapper.selectByPrimaryKey -19446 [http-nio-8080-exec-6] DEBUG com.erp.dao.TestMybatis...转载 2019-01-08 16:11:11 · 183 阅读 · 0 评论 -
SSM+redis整合(mybatis整合redis做二级缓存)
SSM:是Spring+Struts+Mybatis ,另外还使用了PageHelper 前言: 这里主要是利用redis去做mybatis的二级缓存,mybaits映射文件中所有的select都会刷新已有缓存,如果不存在就会新建缓存,所有的insert,update操作都会更新缓存。(这里需要明白对于注解写的SQL语句不会操作缓存,我的增加方法是注解写的就没有清空缓存,后来改为X...转载 2019-01-08 16:25:26 · 271 阅读 · 1 评论 -
redis的事务不是原子性
一、事务的四大特性关系型数据库的事务具有四个特性:1. 原子性2. 一致性3. 隔离性4. 持久性二、而在我们redis数据库中,事务回事什么样子的呢?首先我们给出一个定义:redis的事务中,一次执行多条命令,本质是一组命令的集合,一个事务中所有的命令将被序列化,即按顺序执行而不会被其他命令插入在redis中,事务的作用就是在一个队列中一次性、顺序性、排他性的执行...转载 2019-01-26 21:47:38 · 265 阅读 · 0 评论 -
缓存穿透、缓存并发、缓存失效之思路变迁
在用缓存的时候,基本上会通用遇到以下三个问题: 缓存穿透 缓存并发 缓存失效 一、缓存穿透 上面三个图会有什么问题呢?我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义...转载 2019-01-21 14:56:37 · 120 阅读 · 0 评论 -
单线程的Redis为什么这么快
一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据” ,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你:为什么说...转载 2019-01-25 14:13:20 · 164 阅读 · 0 评论 -
Redis 3.2.1集群搭建
一、概述 Redis3.0版本之后支持Cluster.1.1、redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot resharding:在线分片 4):进群管理:cluster xxx 5):基于配置(nodes-port.conf)...转载 2019-01-25 11:32:36 · 508 阅读 · 0 评论 -
Redis应用场景说明与部署
Redis简介REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统。redis和大名鼎鼎的memcached缓存服务很像,但是redis支持的数据存储类型更丰富,但是redis支持的数据存储类型更丰富,包括string(字符串)、list(链表),set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、ad...转载 2019-01-25 11:19:11 · 259 阅读 · 0 评论 -
Redis的7个应用场景
一:缓存——热数据热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制可以选择,要冷、热的还是忽冷忽热的都可选。结合具体应用需要注意一下:很多人用spring的AOP来构建redis缓存的...转载 2019-01-25 11:17:15 · 116 阅读 · 1 评论 -
spring集成redis——主从配置以及哨兵监控
Redis主从模式配置:Redis的主从模式配置是非常简单的,首先我们需要有2个可运行的redis环境:master node : 192.168.56.101 8887slave node: 192.168.56.102 7777 我们只要在slave 节点的配置文件中,找到 slaveof开头然后修改为:(master的ip与端口)slaveof 192....转载 2019-01-24 19:39:59 · 641 阅读 · 0 评论 -
redis哨兵集群高可用
1 Redis的分片技术1.1 分片介绍1.1.1 传统方式的问题说明:如果采用单台redis时,如果redis出现宕机现象.那么会直接影响我们的整个的服务.1.1.2 采用分片模式说明:由一台redis扩展到多台redis.由多台redis共同为用户提供服务.并且每台redis中保存1/N的数据.好处:如果一台redis出现了问题.不会影响整个redis的服务. ...转载 2019-01-24 18:59:53 · 177 阅读 · 0 评论 -
redis从单点、主从、哨兵、到集群的总结(阶段性总结)
我最近看项目:发现我们当前项目用的redis是主从,但是跟单点其实没有什么区别,因为我们在应用层面没有做读写分离,所以其实从服务器只是做了一个主从复制的工作,其他的什么都没有做。那么如果我们的系统升级,用户量上升,那么一主一从可能扛不住那么大的压力,可能需要一主多从做备机,那么假如主服务器宕机了,选举哪台从服务器做主呢?这就是一个问题,需要一个第三个人来解决,所以我查了一下,哨兵模式可以解决这...转载 2019-01-24 17:10:05 · 9681 阅读 · 1 评论 -
Redis Sentinel 介绍与部署
Redis Sentinel 介绍与部署1. Sentinel介绍1.1 主从复制的问题Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用:一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。 扩展主节点的读能力,分担主节点读压力。但是问题来了:一旦主节点宕机,从节点晋升成主节点,同时需要修改应用方的主节点地址,还需要命令所有从节点去复制新的主节点,整个过...转载 2019-01-24 17:00:46 · 240 阅读 · 0 评论 -
用sentinel作Redis集群,总结下自己遇到的坑,以及探讨下改如何设置哨兵模式
先写总结1.sentinel 的配置文件要配置master的密码:sentinel auth-pass mymaster phFUND_linux_redis。2.为了主从能自由切换请给主从都配置好密码,而且要设置相同的密码(完成切换后,因为从没有配置masterauth,导致重启后连接不上主):masterauth "phFUND_linux_redis"requirepass ...转载 2019-01-24 16:37:44 · 935 阅读 · 0 评论 -
redis客户端之jedis和sharedJedis
SharedJedis客户端创建//设置连接池的相关配置 JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxTotal(2); poolConfig.setMaxIdle(1); poolConfig.setMaxWaitMillis(200...转载 2019-01-08 20:49:44 · 259 阅读 · 0 评论 -
Redis集群(原理+实操)
Redis cluster tutorialRedis集群提供一种方式自动将数据分布在多个Redis节点上。Redis Cluster provides a way to run a Redis installation where data is automatically sharded across multiple Redis nodes.1、Redis集群TCP端口(Redi...转载 2019-01-14 14:30:35 · 265 阅读 · 0 评论 -
Redis 主从,集群--实战
redis主从配置1、架构2、Redis主从数据同步的步骤 3、安装部署 3.1 基本环境两台Centos 6.5 操作系统 ,分别关闭selinux,以及防火墙。master: 192.168.0.250slave: 192.168.0.251安装C语言编辑器yum install gcc gcc-c++ -y 4.2....转载 2019-01-14 14:22:40 · 183 阅读 · 0 评论 -
Redis哨兵集群模式
一、引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一点,Master和Slave两个节点的持久化配置尽量保持一致,否则会有奇怪的问题出现。从今天开始我们开始讲Redis集群模式的第二模式,也就是“哨兵”模式,该模式是从Redis的2.6版本开始...转载 2019-01-14 14:20:19 · 174 阅读 · 0 评论 -
Redis主从模式
Redis主从模式 目录:1、Redis主从模式简单介绍:2、Redis主从模式的部署安装:3、测试从服务器的只读:4、测试主节点宕机故障恢复:1、Redis主从模式简单介绍:图1.1 主从模式架构主从模式:使用一个Redis实例作为主机,其余的作为备份机。主机和备份机的数据完全一致,主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取。...转载 2019-01-14 14:16:25 · 5037 阅读 · 0 评论 -
Jedis操作Redis--List类型
/** * List(列表) * BLPOP,BRPOP,BRPOPLPUSH,LINDEX,LINSERT,LLEN,LPOP,LPUSH,LPUSHX,LRANGE,LREM,LSET,LTRIM, RPOP,RPOPLPUSH,RPUSH,RPUSHX */public class ListTypeTest { private Jedis jedis; priva...转载 2018-09-29 19:20:53 · 530 阅读 · 0 评论 -
Redis基本操作——List(原理篇)
小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作。当时我们提到Redis的键值对不仅仅是字符串。而这次我们就要介绍Redis的第二个数据结构了,List(链表)。由于List在原理上的实现并不是特别的复杂,我们在这里将原理和具体的命令都放在一起介绍。 Redis基本操作——List(原理篇) 学习过数据结构的同学,一定对链表(Linked List)十分的...转载 2018-09-29 18:53:17 · 4481 阅读 · 1 评论 -
redis 单点连接
logger.info("I am client.start..."); String message=context.get("userName",String.class); long starttime=(new Date()).getTime(); //String abc=hashMapCache.get("00a0008eb627fd1f5a95223e9471239c");原创 2017-12-27 16:03:21 · 497 阅读 · 0 评论 -
redis安装以及配置主从文档
安装1.将安装包放到/usr/local/redis目录下2.解压安装包tar -zxvf redis-3.2.5.tar.gz3.编译cd redis-3.2.5make编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。mkdir /usr/rediscp redis-serve原创 2017-12-13 14:39:27 · 237 阅读 · 0 评论