2021
04-09
04-09
redis 主从备份及其主备切换的操作
首先原文是用了3个服务器,我是用了一个服务器;然后再原文的基础上,稍加了自己的整理。前提:redis中,主从切换场景中,没有绝对的主和从,只有初始化的主和从,然后当主down后,从就变成主了,而主即使连接上,也是从,不会变为主1.redis-server的主备关系:master:redis-1slave1:redis-2slave3:redis-32.首先进行主从备份:修改从服务redis-1redis-2的redis.conf在从服务上修改redis.conf加入slaveof127.0.0.1...
继续阅读 >
1.命令行不知道大家在日常操作redis时用什么可视化工具呢?以前总觉得没有什么太好的可视化工具,于是问了一个业内朋友。对方回:你还用可视化工具?直接命令行呀,redis提供了这么多命令,操作起来行云流水。用可视化工具觉得很low。命令行的鄙视用工具的,用高端工具的鄙视低端工具的,鄙视链一直存在。虽然用命令行自己也可以,但是总感觉效率上不如用工具,在视觉上不那么直观。尤其是看json的时候,在命令行就很不友好。大佬...
当安装好redis之后,运行redis-server命令之后,显示如图所示:但是这样没有办法在这个tab下做任何操作了,因为这个时候使用Ctrl+c之后,就变成了这个样子然后就关闭了,那么我想让redis在后台启动怎么办呢?在安装redis之后,我们可以可以找到一个叫redis.conf的文件,这个文件是redis的配置文件位置,如图所示:使用vim命令打开该文件,如图所示:其实英文好的同学可以好好读一下这个配置文档,受益匪浅的,上来就是redis如何来...
前言最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到最大限制的时候会使用LRU等淘汰机制,然后找了这方面的一些资料与大家分享一下。LRU总体大概是这样的,最近使用的放在前面,最近没用的放在后面,如果来了一个新的数,此时内存满了,就需要把旧的数淘汰,那为了方便移动数据,肯定就得使用链表类似的数据结构,再加上要判断这条数据是不是最新的或者最旧的那么应该也要使用hashmap等key-value形式...
在Redis集群搭建中,我们搭建了下图所示的Redis集群,接下来我们就来看看如何为我们的Redis集群进行水平扩容。[root@localhostredis-5.0.3]#src/redis-serverredis-cluster/8001/redis.conf[root@localhostredis-5.0.3]#src/redis-serverredis-cluster/8004/redis.conf[root@localhostredis-5.0.3]#src/redis-serverredis-cluster/8002/redis.conf[root@localhostredis-5.0.3]#src/redis-serverredis-cluster/8005/r...
rediskeys和scan的区别redis的keys命令,通常在用来删除相关key时使用,但这个命令有一个弊端,在redis拥有数百万及以上的keys时,执行速度会比较慢,更致命的是,这个命令会阻塞redis多路复用的io主线程,如果这个线程阻塞,在此期间,其他发向redis服务端的命令,都会被阻塞,从而引发一系列级联反应,导致瞬间相应卡顿,从而引发超时等问题,所以应该在生产环境禁止用使用keys和类似的命令smembers,这种时间复杂度为O(N),...
我们知道,redis提供了keys命令去获取所有满足格式的key,如我们键入命令keys"user*"将得到所有以user开头的key然后执行mget命令可以获取多个key的值,如但如果满足条件的key过多,我们要将所有key拿到,再用mget去拿到所有值则为相对比较麻烦,因此可以借助xargsredis-clikeys"user*"|xargsredis-climget获取到所有key的值也可以执行lua脚本localkeys=redis.call('keys',KEYS[1]);returnredis.call('mget',unpack(key...
一种方法是用lrange(key,0,-1)。这种方法不会影响redislist中的数据。List<String>list=jedis.lrange(key,0,-1);另一种方法是用while+lpop。这种方法会将redislist中的数据都弹出来,redislist就变成空的了。List<String>list=newArrayList<>();Stringst=jedis.lpop(key);while(st!=null){list.add(st);st=jedis.lpop(key);}这两种方法获得的List<String>list中的元素的顺...
概述使用Spring提供的SpringDataRedis操作redis必然要使用Spring提供的模板类RedisTemplate,今天我们好好的看看这个模板类。RedisTemplate看看4个序列化相关的属性,主要是用于KEY和VALUE的序列化。举个例子,比如说我们经常会将POJO对象存储到Redis中,一般情况下会使用JSON方式序列化成字符串,存储到Redis中。Spring提供的Redis数据结构的操作类ValueOperations类,提供RedisStringAPI操作L...
自己的项目因为会一直抓取某些信息,但是本地会和线上经常一起跑,造成冲突。这其实就是我们常说的分布式集群的问题了,本地和线上的服务器构成了集群以及QPS为2的小并发(其实也不叫并发,不知道拿什么词形容?)。 首先,分布式集群的问题大家都知道,会造成数据库的插入重复问题,会造成一系列的并发性问题。 解决的方式呢也大概如下几点,百度以及谷歌...