
正文
rediskey迁移,redis cluster迁移
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何让redis 迁移大key的restore性能提升6倍
Ardb是用c++写的。redis另一个开发者Matt Stancliff从Ardb提取GEO库,用C语言改写,整合进redis的一个自己的分支,并被redis作者接受,合并进了3.2版本。GEO目前提供以下6个命令。
,
相关问答
Q1: php实现redis数据库指定库号迁移的方法
这篇文章主要介绍了php实现redis数据库指定库号迁移的方法,涉及对于redis数据库的操作技巧,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了php实现redis数据库指定库号迁移的方法,分享给大家供大家参考。具体如下:
redis普通的数据库迁移,只能整个redis
save,或者利用主从,当然也可以安装一个redis-dump,不过比较麻烦,这里提供一种php的脚本,实现指定库号的迁移,其实也就是遍历根据存储类型,读出来,插入新库,效果是这样:
代码如下:
[root@localhost
~]#
php
1.php
1/407
101/407
201/407
301/407
401/407
PHP实例代码如下:
代码如下:
?php
$from
=
'10.0.2.52:6379/7';
$to
=
'127.0.0.1:6379/7';
$from_redis
=
redis_init($from);
$to_redis
=
redis_init($to);
$keys
=
$from_redis-keys('*');
$count
=
0;
$total
=
count($keys);
foreach($keys
as
$key){
if(++$count
%
100
==
1){
echo
"$count/$totaln";
}
$type
=
$from_redis-type($key);
switch($type){
case
Redis::REDIS_STRING:
$val
=
$from_redis-get($key);
$to_redis-set($key,
$val);
break;
case
Redis::REDIS_LIST:
$list
=
$from_redis-lRange($key,
0,
-1);
foreach($list
as
$val){
$to_redis-rPush($key,
$val);
}
break;
case
Redis::REDIS_HASH:
$hash
=
$from_redis-hGetAll($key);
$to_redis-hMSet($key,
$hash);
break;
case
Redis::REDIS_ZSET:
$zset
=
$from_redis-zRange($key,
0,
-1,
true);
foreach($zset
as
$val=$score){
$to_redis-zAdd($key,
$score,
$val);
}
break;
}
}
function
redis_init($conf){
$redis
=
new
Redis();
preg_match('/^([^:]+)(:[0-9]+)?/(.+)?/',
$conf,
$ms);
$host
=
$ms[1];
$port
=
trim($ms[2],
':');
$db
=
$ms[3];
$redis-connect($host,
$port);
$redis-select($db);
return
$redis;
}
?
希望本文所述对大家的php程序设计有所帮助。
Q2: Redis集群重新分片
内容部分摘自于《Redis的设计与实现》(17章节)
Redis 集群的重新分片操作是由 Redis 的集群管理软件 redis-trib 负责执行的, Redis 提供了进行重新分片所需的所有命令,而 redis-trib 则通过向源节点和目标节点发送命令来进行重新分片操作。
redis-trib 对集群的单个槽slot进行重新分片的步骤如下:
如果重新分片涉及多个槽,那么redis-trib将对每个给定的槽分别执行上面给出的步骤。
假设我们有三台redis集群(不考虑从机器),node0(127.0.0.1:7000)、node1(127.0.0.1:7001)、node2(127.0.0.1:7002),现在我们需要新加一台node3(127.0.0.1:7003)机器,这时候会发现重新分片。
假设槽8000(存在多个key,key0、key1、key2)、8001需要从node2迁移到node3上,对应上面过程中,node2 就为源节点, node3 为目标节点。
如果在这个重新分片的过程,刚好请求的key在发生转移的过程,因为源节点记录了要迁移的目标节点,即使请求到源节点上,这个key并不存在与源节点,此时会返回一个ASK错误,并将请求转发给key存在目标节点。
Q3: 如何吧redis的key数据导出
使用CRT远程登录装有redis的机器
执行命令redis-cli hkeys key key_value.txt,其中key为你所设置的名称,key_value.txt中的key_value为你取的导出后的文件名称
Q4: Redis 对一个旧的key值能复制并新建一个新的key吗
1、redis有五种数据类型:string,list,hash,set,zset,不同的数据类型查看值得方式不同。
2、string:get
key
list:pop
key
hash:
hget
hash-name
key
set:smembers
key
zset:
zrange
zset-name
-1
关于rediskey迁移和redis cluster迁移的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






