为了账号安全,请及时绑定邮箱和手机立即绑定

redis服务搭建有几种方式

redis服务搭建有几种方式

莫回无 2019-04-15 12:08:35
redis服务搭建有几种方式
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

redis主从复制集群

实现方式:选择一台redis服务器作为master节点(负责写操作),另外一台或多台服务器作为slave节点(负责读操作),slave节点上的数据完全由master节点同步过来。

作用:降低单节点redis服务器的读写负载,将读写分离到不同的服务器 提供数据的可用性

配置方式: Master节点不用作任何变动 Slave节点上的配置文件redis.conf需要修改如下配置

#slaveof <masterip> <masterport>改为salveof 127.0.0.1 6379最好让服务器配成只读属性salve-read-only yes123456

要想实现高可用即故障转移: 需要使用 keepalive

redis数据分片(Sharding)集群

实现方式:由若干台互不相干的redis服务器组成一个集群,互相独立,由集群的前置节点或者客户端实现将数据分散插入到集群中的各服务器上

作用:扩大数据存储的容量,降低单台服务器负载

步骤

首先准备两个服务器  其中两个服务器的服务名称和端口号要不相同,两个生产的dump.rdb文件要在不同的路径下面,而且第二个服务器不能打开主从服务器的配置,配置如下,要注释掉该配置

开启两个服务器,在后台运行

后台运行可以修改如下配置,将daemonize改为yes即可

开启两个客户端 

然后编写分片集群的代码

public static void main(String[] args) {        //poolConfig是连接池的配置参数GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();        //shards是分片集群中所有分片服务器信息列表,JedisShardInfo是分片服务器信息ArrayList<JedisShardInfo> shards = new ArrayList<>();        //将集群中的两台shard服务器信息封装到两个JedisShardInfo对象中JedisShardInfo shard1 = new JedisShardInfo("192.168.90.131",6379);JedisShardInfo shard2 = new JedisShardInfo("192.168.90.131",6380);        //将分片服务器信息对象添加到分片服务器信息列表shards中shards.add(shard1);shards.add(shard2);        //创建一个带数据分片功能的jedis连接池ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, shards);        //从连接池中获取一个带数据分片功能的jedis连接ShardedJedis jedis = shardedJedisPool.getResource();        for (int i=0;i<1000;i++){jedis.set("string-key-"+i,"1000"+i);}jedis.close();shardedJedisPool.close();}123456789101112131415161718192021222324252627282930

进行运行,查看结果 

可以进行检测,6379端口的客户端是否存在6380端口的key

 


查看完整回答
反对 回复 2019-04-16
?
繁星coding

TA贡献1797条经验 获得超4个赞

  1. redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。

  2. 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。

  3. 与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。

  4. redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。


查看完整回答
反对 回复 2019-04-16
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

  Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。
  支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。
  所以Redis也可以被看成是一个数据结构服务器。

查看完整回答
反对 回复 2019-04-16
  • 3 回答
  • 0 关注
  • 1206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信