精华内容
下载资源
问答
  • 创建不带SSL的Compose for Redis 创建IBM Classic虚机 注意事项 •执行该操作前建议停止将数据继续写入AWS ElastiCache for Redis。 •执行该操作前请提前做好数据备份。 执行该操作前需要规划业务停机时间。...

    如果你要将你的数据转移到IBM Cloud Redis云数据库,你需要采取一些步骤来成功迁移你的所有数据。我们帮你搞定了。在这篇文章中,我们将向你展示一种快速的方法来开始将你的数据迁移到Redis的数据库中,无论你的数据库是本地的还是云的。

    如果你是Redis用户,你应该已经知道为什么Redis是快速存储和检索内存数据的好数据库。如果你正在考虑迁移到云,或者从Compose for Redis(或其他云提供商)过渡到数据库,很乐意指导你完成迁移过程。如果你从本地或Compose for Redis数据库迁移到数据库为Redis没有太多的事情要做。

    为Redis迁移到数据库需要运行一个我们在Github上提供的简单Python脚本。该脚本将从您的源数据库复制所有键到您的数据库用于Redis部署。您需要下载该脚本,并确保您安装Python 3。如果你在MacOS上,你可以使用brew install python3来安装它,它会给你最新的版本。接下来,我们建议创建一个迁移窗口,让您的用户知道您将进行一些维护。这样你就有时间把你所有的数据迁移到你的新数据库上进行Redis部署。如果您使用Redis作为键值存储的过期时间,请放心,这些过期时间将复制到您的新数据库。我们在数据库中使用1000万个键进行测试,根据您的带宽,这不会花费太多时间来迁移。

    还要注意一些前提条件

    • 创建不带SSLCompose for Redis:由于IBM Cloud最新一代云数据为了遵从合规性以及对企业用户的数据安全考量,强制设置SSL,所以需要创建不带SSLCompose for Redis来进行数据中转,ICD Redis和Compose for Redis应该在同样的区域,Compose for Redis基于Cloud Foundry,所以需要配置空间和配额,并设置好权限。

    Compose for Redis不显示在数据库目录中,可以通过访问下方连接后按需求创建:https://cloud.ibm.com/catalog/services/compose-for-redis

    然后在同全局创建ICD For Redis

    • 创建IBM Classic虚机:虚机上需要安装ibmcloud cli和ICD插件,如果数据量小,他可以通过Cloud Shell。

    注意事项

    • 执行该操作前建议停止将数据继续写入AWS ElastiCache for Redis
    • 执行该操作前请提前做好数据备份。
    • 执行该操作前需要规划业务停机时间。

    接下来我们讨论下具体部署

    步骤一:将AWS ElastiCache for Redis导出为RDB文件

    创建备份到特定集群。单击左侧导航栏中的Redis,选择需要备份的集群名称,单击备份,资源名称里选择需要备份的集群,填写备份名称后单击创建快照。

    将备份文件导出到AWS S3存储桶。单击左侧导航栏中的备份,选择需要导出的备份文件,单击上方的复制,填写新缓存快照标识符名称,选择目标S3位置,单击右下角复制,导出过程将开始。

    可以在S3存储桶中找到导出的RDB文件。

    从S3存储桶下载RDB文件。

    步骤二:获取目标和源数据库凭据
    现在,您需要拥有源数据库和您的数据库的凭据用于Redis部署。您可以通过单击IBM Cloud资源面板中的数据库来获得用于Redis部署的数据库凭据。然后从左侧菜单中单击Service凭证链接,该链接将带您到Service凭证视图。在那里,您可以通过单击该按钮创建一个New凭据,或者您可以使用已经创建的任何凭据。

    获取此信息的另一种方法是使用IBM Cloud CLI,使用cdb插件,你可以运行: 

    ibmcloud cdb deployment-connections <Redis deployment name>

    下面的命令将提供你的数据库为Redis连接URI,包括主机名和端口。要获得数据库的解码CA证书,你可以运行: 

    ibmcloud cdb deployment-cacert <Redis deployment name>

     CA证书解码后,您需要将其保存到一个文件中,以便稍后连接到数据库。如果你不知道Redis部署的密码,你需要从你生成的服务凭据中获取,或者你可以通过运行来创建一个新的密码:

    ibmcloud cdb deployment-user-password <Redis deployment name> admin <new password>

    有了这些信息,我们就得到了目的地所需的信息。对于源代码,假设我们想要将我们的数据从Compose For Redis迁移到我们的新数据库用于Redis部署。要做到这一点,你必须获得主机、端口和Redis数据库的Compose密码。你可以按照我们上面提到的步骤,从IBM云资源面板上点击Compose for Redis数据库,然后创建或使用你的服务凭证。

    步骤三:运行脚本和迁移数据

    既然您已经拥有了这两个数据库(Compose Redis和ICD Redis)的所有凭据,现在我们将向您展示如何运行该脚本。我们将Python脚本文件命名为pymigration.py。你现在需要做的就是使用上面的凭据从你的终端运行代码:

    python pymigration.py <source host> <source password> <source port>
    <destination host> <destination password> <destination port>
    <destination ca certificate path> --sslsrc --ssldst

    因为我们从一个Compose for Redis数据库复制数据,你需要添加--sslsrc标志,如果你的Compose for Redis数据库是SSL/TLS启用。如果不是,那就不要添加旗子。这确保Redis连接到一个SSL/TLS启用的数据库。你还需要添加--ssldst,因为目标数据库是数据库的Redis也启用SSL/TLS。可以添加的附加标志是--dband --flush。使用--db,你可以表明你的密钥是从数据库复制的,这将是他们复制到你的数据库中用于Redis部署的数据库。--flush标志允许您在从源数据库导入键之前刷新目标数据库。


    如果你想在Redis部署时保持数据库中的内容新鲜,flush将首先删除所有键,然后从源数据库导入新的键。运行上面的脚本,使用Compose for Redis作为数据迁移的源,数据库为Redis作为迁移数据的目的地,我们会得到如下结果: 

    python pymigration.py portal0.0000.composedb.com composepassword1 88888 000.000.databases.appdomain.cloud dbredispassword1 99999 ~/dbredisCA  --sslsrc --ssldst  10000000 keys: 100% |###################################################| Time: 0:00:00 Keys disappeared on source during scan: 0 Keys already existing on destination: 0

    正如你可以从结果中看到的,我们从Compose for Redis复制了1000万个键到数据库。没有键被删除的Compose for Redis数据库。如果我们添加一个新的键到Compose for Redis部署并尝试再次迁移数据,我们将看到目标上已经存在的键将更改为10000000,因为原来的1000万个键已经存在于该数据库中。 

    10000000 keys: 100% |###################################################| Time: 0:00:00

    Keys disappeared on source during scan: 0

    Keys already existing on destination: 10000000

    在你的迁移之后,你所需要做的就是将你的应用程序的数据库连接字符串与你的数据库交换为Redis连接字符串和凭证。迁移数据是不是非常简单?

    展开全文
  • redis数据库迁移方案

    2019-12-24 15:45:24
    redis迁移方案 整理一下常用的几种redis迁移的方案,分别对应不同的场景。 备份/拷贝/重启 redis-dump 客户端 1. 备份/拷贝/重启 利用redis的持久化功能,redis重启的时候,会自动从硬盘的持久化文件中读取...

    redis迁移方案

    整理一下常用的几种redis迁移的方案,分别对应不同的场景。

    • 备份/拷贝/重启
    • redis-dump
    • 客户端

    1. 备份/拷贝/重启

    利用redis的持久化功能,redis重启的时候,会自动从硬盘的持久化文件中读取数据再恢复到内存中。利用这里原理,把redis2的持久化备份
    替换成redis1的,然后重启redis2,它就会从硬盘持久化文件恢复到内存,这样一来redis2就跟redis1一样了

    要使用这个方案,就必须了解redis的持久化,redis的持久化方案有2种,rdb模式和aof模式:

    • rdb 保存整个redis的数据
    • aof 保存成redis可以执行的命令

    rdb覆盖过去之后,新的redis数据就没了,毕竟是覆盖操作。而aof因为是保存的命令,只是在新的redis上重新执行了一遍,所以不会覆盖
    新redis上的数据。 简单来说如果需要保留新redis的数据,可以使用aof

    具体命令

    rdb方案
    # 链接redis
    $ redis-cli -u 127.0.0.1 -p 6379 -a 你的密码 
    # 执行持久化
    $ 127.0.0.1:6379> bgsave
    # 查看文件位置
    $ 127.0.0.1:6379> config get dir

    复制 redis数据目录/dump.rdb 到另一台redis的数据目录下,启动即可。

    ps:先关闭目标redis,先复制文件的话,在目标redis关闭的时候,会生成持久化文件,覆盖你刚刚复制的文件
    aof
    # 设置appendonly yes
    $ 127.0.0.1:6379> config set appendonly yes
    
    # or
    $ redis-cli -u 127.0.0.1 -p 6379 -a 你的密码 config set appendonly yes

    执行之后,就会在 redis的数据目录 看到 appendonly.aof 文件

    # 目标redis
    $ redis-cli -h aliyun_redis_instance_ip -p 6379 -a password --pipe < appendonly.aof

    2. redis-dump

    redis-dump是一个第三方的工具,提供redis的导出和导入。

    安装步骤

    1. 安装rvm。可参考官网:http://rvm.io/

      # gpg2 没安装的化自行安装 `apt install gnupg2`
      $ gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
      
      $ \curl -sSL https://get.rvm.io | bash -s stable
      
      # 按照系统提示执行,添加系统环境
      $ source /etc/profile.d/rvm.sh
      
      # 确认安装成功
      $ rvm list known
    2. 安装ruby 参考官方网站:http://www.ruby-lang.org/en/d...

      # ruby版本参考官方发行的最新版,本搞写的时候版本为2.6.3
      $ rvm install ruby 2.6.3
    3. 安装 redis-dump

      # 移除国外的库,不然下载不了
      $ gem sources --remove https://rubygems.org/
      # 安装国内的资源地址
      $ gem sources -a https://gems.ruby-china.com/
      # 安装
      $ gem install redis-dump -V

    一些简单的使用

    # 导出所有db
    $ redis-dump -u 127.0.0.1:6371 > db_full.json
    # 导出db15
    $ redis-dump -u 127.0.0.1:6371 -d 15 > db_db15.json
    
    # 导入
    $ < db_full.json redis-load -u 127.0.0.1:6379
    $ < db_db15.json redis-load -u 127.0.0.1:6379 -d 15
    
    # OR
    $ cat db_full | redis-load
    $ cat db_db15.json | redis-load -d 15
    
    # 使用密码的小技巧(注意密码前面的`:`)
    $ redis-dump -u :密码@127.0.0.1:6371

    3. 客户端

    使用phpredisadmin等客户端,自带导入、导出

    git库 https://github.com/ErikDubbel...

    Example: http://dubbelboer.com/phpRedi...

    功能截图:

    clipboard.png

    展开全文
  • Redis集群主要有五种方案: 官方cluster方案、twemproxy代理方案、哨兵模式、Codis、客户端分片。 其中以豌豆荚的Codis使用最多,本文主要介绍Codis。 一、Codis 安装 1. 安装最新版 3.2 1) java 环境 yum -...

    Redis集群主要有五种方案:

    官方cluster方案、twemproxy代理方案、哨兵模式、Codis、客户端分片。

    其中以豌豆荚的Codis使用最多,本文主要介绍Codis。

     

    一、Codis 安装

    1. 安装最新版 3.2

    1) java 环境

    yum -y  install java-1.8.0

    2)go环境

    tar zxvf /root/go1.8.3.linux-amd64.tar.gz -C /usr/local/

    /usr/local/go/bin/go version

    mkdir -p /data/go

    echo 'export PATH=$PATH:/usr/local/go/bin:/usr/local/codis/bin'  >>/etc/profile

    echo 'export GOPATH=/data/go'  >>/etc/profile

    source /etc/profile

    go env GOPATH

    3) 安装codis

    4)安装zookeeper

    zookeeper 至少部署 3台

     

    二、集群配置

    1. 角色划分

    192.168.180.120 codis120 codis-server  zookeeper

    192.168.180.121 codis121 codis-server  zookeeper

    192.168.180.122 codis122 codis-server  zookeeper

    192.168.180.123 codis123 codis-server  codis-proxy  nginx-tcp  lvs

    192.168.180.124 codis124 codis-server  codis-proxy  nginx-tcp  lvs

    192.168.180.125 codis125  codis-server  codis-dashboard codis-fe

     

    2. 启动codis-dashobard(codis125上操作)

    修改dashboard.toml配置文件:

    coordinator_name = "zookeeper"

    coordinator_addr = "192.168.180.120:2181,192.168.180.121:2181,192.168.180.122:2181"

    product_name = "codis-product1"

    product_auth = ""

    admin_addr = "0.0.0.0:18080"

    启动命令:

    ./admin/codis-dashboard-admin.sh start

     

    3. 启动codis-proxy(codis123与codis124上操作)

    修改codis-proxy启动脚本:

    cat admin/codis-proxy-admin.sh | grep DASH

    CODIS_DASHBOARD_ADDR="192.168.180.125:18080"

    修改proxy.toml配置:

    cat config/proxy.toml|grep -Ev "^#|^$"

    product_name = "codis-product1"

    product_auth = ""

    session_auth = ""

    admin_addr = "0.0.0.0:11080"

    proto_type = "tcp4"

    proxy_addr = "0.0.0.0:19000"

    启动codis-proxy脚本:

    ./admin/codis-proxy-admin.sh start

    检查日志和端口:

    cat log/codis-proxy.log

    netstat -tulpn | grep codis-proxy

     

    4. 启动codis-server(需要在所有上操作)

    1)修改启动脚本

    vim /usr/local/codis/admin/codis-server-admin-6379.sh start

    vim /usr/local/codis/admin/codis-server-admin-6380.sh start

    主要注意以下几点

    [root@codis125 codis]# cat /usr/local/codis/admin/codis-server-admin-6379.sh |grep -Ev "^#|^$"|grep 6379

    CODIS_SERVER_PID_FILE=/data/codis/6379/redis_6379.pid

    CODIS_SERVER_LOG_FILE=/data/codis/6379/redis_6379.log

    CODIS_SERVER_CONF_FILE=$CODIS_CONF_DIR/redis-6379.conf

    2)修改服务配置

    [root@codis120 codis]# mkdir -p /data/redis/6379

    [root@codis120 codis]# mkdir -p /data/redis/6380

    [root@codis120 codis]# vim /usr/local/codis/config/redis-6379.conf

    [root@codis120 codis]# vim /usr/local/codis/config/redis-6380.conf

    主要是注意以下几点

    [root@codis120 codis]# cat /usr/local/codis/config/redis-6379.conf |grep -Ev "^#|^$"|grep 6379

    port 6379

    pidfile /data/redis/6379/redis_6379.pid

    logfile "/data/redis/6379/redis_6379.log"

    dir /data/redis/6379

    3)启动codis-server服务

    [root@codis120 codis]# ./admin/codis-server-admin-6379.sh start

    /usr/local/codis/admin/../config/redis-6379.conf

    starting codis-server ...

    [root@codis120 codis]# ./admin/codis-server-admin-6380.sh start

    /usr/local/codis/admin/../config/redis-6380.conf

    starting codis-server ...

     

    5. 启动codis-fe(codis125上操作)

    1)修改codis-fe启动脚本

    [root@codis125 codis]# cat admin/codis-fe-admin.sh

    主要修改这几行

    #!/usr/bin/env bash

    #COORDINATOR_NAME="filesystem"

    #COORDINATOR_ADDR="/tmp/codis"

    COORDINATOR_NAME="zookeeper"

    COORDINATOR_ADDR="192.168.180.120:2181,192.168.180.121:2181,192.168.180.122:2181"

    2)启动codis-fe脚本

    [root@codis125 codis]#  ./admin/codis-fe-admin.sh start

    3)访问面板

    http://192.168.188.125:9090/#codis-product1

     

    6. codis-fe面板操作

    1)通过codis-fe添加group

    通过web浏览器访问集群管理页面(fe地址:http://192.168.188.125:9090/#codis-product1) 选择我们刚搭建的集群 codis-product1,在 Proxy 栏可看到我们已经启动的 Proxy, 但是

    Group 栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUP,NEW GROUP 行输入 1,再点击 NEW GROUP 即可 添加 Codis Server,Add Server 行输入我们刚刚启动的

    codis-server 地址,添加到我们刚新建的 Group,然后再点击 Add Server 按钮即可。

    如上依次添加6个group,12个codis-server,默认每组里面第一个添加的为主,第二个添加的设置为从,同一个节点2个实例不能设置为同一group。

    2)通过codis-fe初始化solt

    新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,如下图

    所示,点击此按钮,我们即快速完成了一个集群的搭建。

    自动分配1024个solt到6个group,reblance all solts会自动分配完所以solt到6个group。

     

    7. 代理HA

    1)在codis123与codis124上安装lvs与nginx-tcp

    2)配置好VIP+19000端口为第一个codis-dashboard业务线使用,其他类推

     

    三、数据迁移

    做好平滑的数据同步迁移,不影响业务正常使用。

    redis-port 工具做数据迁移

    参考:https://www.cnblogs.com/yotone/p/6556480.html

    使用redis-port:

     [www@m180p10 redis-port]$  nohup ./bin/redis-port sync --ncpu=1 --from=192.168.180.10:6001 --password=whyredis --target=192.168.180.12:19002 --auth=codiswyt >> /opt/codis/redis-port/log/redis-to-codis.log  2>&1 &

     

    1. 如何做到不停机,数据迁移?

    数据迁移过程中,如果不停机,新集群 和 旧集群 数据只能是趋近于相等,但不可能绝对相等。

    我们需要考虑的是,切流量那一会新打入旧集群的缓存信息,在新集群不存在,是否会影响业务?是否可以接受?

    2. 如果有影响,那么就需要考虑影响范围最小化,如何最小化?

    因为缓存一旦没有信息,势必会穿透到DB, 这样DB压力会上升。

    我们可以通过流量控制,开始只切5% 的流量(甚至更小 1%) 到 Codis, 观察情况,没问题逐步切流量到新集群。

    3. 梳理旧集群 redis key, 分析哪些key 是必不可少的。检查迁移是否有遗漏。

    4. 故障回滚方式:灰度 和线上 两份,连接新旧集群,进行切换。

     

    四、Codis 客户端高可用

    使用jodis做codis的连接,在项目中封装多代理ip 轮询负载均衡,实现高可用。

    pom.xml配置:

    <dependency>

           <groupId>io.codis.jodis</groupId>

          <artifactId>jodis</artifactId>

          <version>0.5.1</version>

    </dependency>

    properties 文件:

    codis.zkAddr=127.0.0.1:2181,127.0.0.1:2181,127.0.0.1:2181

    codis.zk.proxy.dir=/jodis/codis

    codis.password=

     

    1. 代码实现

    @Bean

    public JedisResourcePool getPool() {

    JedisPoolConfig poolConfig = new JedisPoolConfig();

    poolConfig.setMaxIdle(max_idle);

    poolConfig.setMaxTotal(max_active);

    poolConfig.setTestOnBorrow(true); //在borrow一个jedis实例的时候,是否要进行验证操作,如果赋值true。则得到的jedis实例肯定是可以用的。

    poolConfig.setTestOnReturn(true); //在return一个jedis实例的时候,是否要进行验证操作,如果赋值true。则放回jedispool的jedis实例肯定是可以用的。

    poolConfig.setMaxWaitMillis(max_wait);

    poolConfig.setBlockWhenExhausted(false); //连接耗尽的时候,是否阻塞,false 会抛出异常,true 阻塞直到超时。默认为true。

    JedisResourcePool pool = RoundRobinJedisPool.create().poolConfig(poolConfig)

    .curatorClient(zkAddr, timeout)

    .password(password).zkProxyDir(zkProxyDir).build();

    return pool;

    }

    注意:如果没有设置密码,以上代码去掉password。

    封装以上jedisPool为启动时加载,注入bean,其他服务使用时,注入即可。

    线上环境使用时,将127.0.0.1 换成自己的真实ip即可,这里只是范例。

     

    2. Spring 配置方式接入

    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">

    <!--最大分配的对象树 -->

    <property name="maxTotal" value="1024"></property>

    <!--最大能够保持idle状态的对象数 -->

    <property name="maxIdle" value="0"></property>

    <!--当缓存池内没有返回数据时,最大等待时间 -->

    <property name="maxWaitMillis" value="1000"></property>

    <!-- 当调用borrow Object方法时,是否进行有效性检查 -->

    <property name="testOnBorrow" value="false"></property>

    <!--当调用return Object方法时,是否进行有效性检查 -->

    <property name="testOnReturn" value="false"></property>

    </bean>

    <bean id="jedisPool" class="com.deppon.cache.store.RedisClient">

    <property name="host" value="127.0.0.1:2181,127.0.0.1:2181,127.0.0.1:2181"></property>

    <property name="timeout" value="30000"></property>

    <property name="zkProxyDir" value="/jodis/codis"></property>

    <property name="poolConfig" ref="poolConfig"></property>

    </bean>

     

    五、踩坑

    报错: JedisException- Proxy list empty

    解决:

    1. 检查proxy是否已经成功的添加到集群中,在zk中就可以查看。/jodis/productName路径下,看是否有对应的proxy。

    如:

     

     

    2. 修改codis3的proxy.toml文件

    # Set jodis address & session timeout.

    jodis_addr = "127.0.0.1:2181,127.0.0.1:2181,127.0.0.1:2181" 

    jodis_addr必须设置

     

    报错: Could not get a resource from the pool

    查询异常详情,发现 cause by ERR Client sent AUTH, but no password is set

    这里意思是服务端没有设置password,客户端链接是确使用了password ,就会报这个错误。去掉password 即可。

     

    展开全文
  • Redis数据迁移方案

    2019-10-07 06:07:58
    Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: redis-dump -h host1 -p 6379 -d 1 --json > mydb.json针对RedisB: cat mydb.json | redis-dump ...

    场景

    Redis实例A ---> Redis实例B,整库全量迁移

    方案一:

    mac环境
    brew install npm
    npm install redis-dump -g

    针对RedisA: redis-dump -h host1 -p 6379 -d 1 --json > mydb.json
    针对RedisB: cat mydb.json | redis-dump --convert | redis-cli
    方案二:
    参考: http://www.zlovezl.cn/articles/migrate-redis-server-seamlessly/, 利用redis的主从复制,从RedisA同步到RedisB,完成后,恢复RedisB的master身份。

    方案三:(针对阿里云Redis数据迁移)
    RedisA实例的dump.rdb文件拷贝到一台阿里云ecs服务器上,该服务器应该能够连接到RedisB实例,在该服务器上自建一个redis实例RedisC, 并RedisC的redis.conf配置文件中的下列配置作出修改:
    # The filename where to dump the DB
    dbfilename dump.rdb

    # The working directory.
    #
    # The DB will be written inside this directory, with the filename specified
    # above using the 'dbfilename' configuration directive.
    #
    # Also the Append Only File will be created inside this directory.
    #
    # Note that you must specify a directory here, not a file name.
    dir /data/mydirectory/  #此处路径为你拷贝过来的dump.rdb文件所在路径

    启动RedisC实例,即可导入RedisA实例的所有内容

    方案四:
    开启用户现有 Redis 实例的 AOF 功能(如果实例已经启用 AOF 功能则忽略此步骤)。

    # redis-cli -h old_instance_ip -p old_instance_port config set appendonly yes

    通过 AOF 文件将数据导入到新的 ApsaraDB for Redis 实例 (假定生成的 AOF 文件名为 append.aof)。
    # redis-cli -h aliyun_redis_instance_ip -p 6379 -a password --pipe < appendonly.aof
    注意:如果原有旧的 Redis 实例不需要一直开启 AOF,可在导入完成后通过以下命令关闭。
    # redis-cli -h old_instance_ip -p old_instance_port config set appendonly no

    -------------------------------------- 两个阿里云redis实例间的数据迁移,综合方案三,四 --------------------------------------------------------------
    1)旧redis实例的*.rdb文件拷贝到一台阿里云ecs服务器(ServerA)上,执行方案三
    保存为dump.rdb到目录 /var/lib/redis/dump.rdb
    重启redis: service redis restart
    2)执行方案四(在ServerA上运行如下命令)
    redis-cli config set appendonly yes(针对本地自建redis)
    redis-cli -h 新redis实例host  -a 密码 --pipe < /var/lib/appendonly.aof

    /var/lib/appendonly.aof 表示 appendonly.aof文件在ServerA上的绝对路径
    redis-cli config set appendonly no (针对本地自建redis)
    -------------------------------------- redis数据迁移步骤 End--------------------------------------------------------------------------------------

     

    转载于:https://www.cnblogs.com/java-wgm/p/6637720.html

    展开全文
  • redis数据迁移方案

    2018-10-11 16:05:00
    一、持久化rdb文件迁移 1.持久化设置 save 900 1#900秒(15分钟)内至少有1个key被改变 save 300 10 # 300秒(5分钟)内至少有300个key被改变 save 60 10000# 60秒内至少有10000个key被改变 dbfilename# ...
  • 线上redis迁移思路

    2018-01-29 02:41:51
    线上redis迁移思路 背景 实际应用中,我们的系统在上线后,总会遇到一些问题,需要对redis进行迁移,或者说切实例。但是由于是线上系统,一个是要谨慎,一个是要保证服务可用,在不停服的情况进行处理。 比如,我们...
  • 故开启了 broker 由 Redis 迁移至 RabbitMq 的路程。 如何无缝迁移 ? 由于不能停服迁移,最大的问题就变成了如何保证原有 Redis 中的任务都能正常执行完成,且新的任务在 rabbitmq 中正常运转。 话说 ...
  • 踩坑之路——Redis迁移遇到的一路坑

    千次阅读 2017-11-03 11:22:40
    Redis-Docker 里面没有 redis.conf需求是,公司要上云,把之前的机房的redis迁移到云redis。阿里的数据库redis版只支持aof方式,而公司之前的redis用的是rdb,所以首先需要把 rdb 转换成 aof ,所以需要改 redi
  • 随着云计算十余年的高速发展,作为目前可见的最新阶段,多云正在快步大踏步前进。而多云趋势所带来得数据云间迁移,也逐步常态化。因此,缓存 Redis 已成为高并发场景下提升数据访问速度的标配。...
  • 不管是单节点还是集群都可以用以下的思路迁移至cluster集群中去 方案步骤 1)获取原单实例节点D的持久化AOF(rdb)文件,如果是集群就先将所有的solt移动到一台机器上 2)新准备三个节点A,B,C,建...
  • redis5 集群迁移方案

    2019-01-03 16:27:00
    Redis5 集群迁移方案 一、KEY优化 1.按原来要求进行优化与大KEY分拆。 二、现Redis 集群缩容(对业务无影响) 主节点按要求合并至3个主节点。 业务配置为3主4从 删除没有槽的主节点与相应从节点。 三...
  • 远程redis 迁移 本地 过去几周我遇到的第一大问题:如何使用完全远程的劳动力来运行云迁移项目? 原因很明显。 考虑到新的世界秩序,公司在被迫进入远程工作人员范式的同时,加速了对战术云迁移的需求。 一些组织...
  • 2.迁移完整数据,项目部署,测试网络环境. redis:复制rdb文件mysql:xtrabackup备份3.确保项目正常运行,网络正常访问.项目对外接口及账户中心访问可达.4.初始化redis,mysql.5.配置网络环境,同步mysql 1.主库创建同步...
  • 一次redis数据迁移实施方案

    千次阅读 2018-03-14 11:05:28
    背景 最近上线了一个项目,项目中使用到了redis为服务提供数据缓存和数据存储。刚开始业务还能正常运行,单机redis基本可以满足服务的性能要求。由于业务增长加快,随着服务的QPS流量越来越大,引起redis的QPS也...
  • 如何让redis 迁移大key的restore性能提升6倍 redis支持migrate key的命令,支持从源redis节点迁移key到目标节点上,目标节点再执行restore命令,将数据加载进内存中。以800MB,数据类型为zset(skiplist) 的 key为例...
  • redis在线迁移工具

    2020-06-30 15:50:44
    redis-migrate-tool-master, redis-full-check 工具促使redis不停机在线迁移方案,完整的步骤配置详情。
  • 生产环境redis在线不停机迁移方案

    千次阅读 2020-04-20 13:13:51
    Redis数据迁移方式 ...方案一 生产环境迁移方案 生产环境要求一般保证 数据不能丢失 目标集群和源集群的redis服务不能停止 数据要实时同步 基于以上三点要求,我觉得唯一可以满足的方式就是通过集群...
  • redis 集群方案

    2015-11-25 13:32:27
    redis集群方案 前端时间粗略的调研了一下redis集群方案,研究的不算深入,还有很多问题没有想明白,暂时...需要考虑的点包括:集群性能、redis ha、扩容、迁移、client友好程度 一、client端负载均衡方案 可以将redis
  • Redis sharding方案

    2017-04-09 15:27:26
    Redis sharding方案
  • 项目需要做wredis到redis的数据迁移,考虑到三种方案: 1 redis和wredis同时写,读的时候根据配置选择从redis还是wredis读取数据。 2 通过wredis到redis的数据同步,代码中直接修改redis的地址。 3 通过scan的...
  • Redis 集群方案

    2021-02-09 10:15:51
    Redis集群方案 Redis 集群方案分为三种:主从、Sentinel(哨兵)、Cluster。 主从 主从模式下,Redis 分为主库(master)和从库(slaver)。主库负责读写,从库只负责读。当主库发生写事件后会将数据同步至从库。...
  • Redis数据迁移

    2021-02-05 10:38:29
    阿里云Redis数据迁移解决方案 Redis-snake下载地址 Redis-snake下载 下载对应的Redis-snake版本 解压redis-shake.tar.gz。 tar -xvf redis-shake.tar.gz 将要迁移的dump.rdb文件放在redis-shake.conf同级...
  • 为您提供Codis分布式Redis解决方案下载,Codis是一个分布式Redis解决方案,对于上层的应用来说,连接到CodisProxy和连接原生的RedisServer没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用...
  • codis 分布式 Redis 解决方案 ... 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务 文章目录codis 分布式 Redis 解决方案go
  • redis集群方案

    2019-09-07 21:08:03
    1. Redis支持的数据类型? String字符串: 格式: set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大...
  • 4.redis集群实现方案 二、Redis集群原理 1、基本介绍 2、redis-cluster架构图 3、redis-cluster投票:容错 4、Redis集群的数据分片 5、Redis只会为主节点分配哈希槽 6、Redis集群的主从...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,708
精华内容 10,283
关键字:

redis迁移方案

redis 订阅