Zookeeper--集群搭建

  zookeeper集群搭建,是非常简单的。本博客就简单的记录一下,不详细的说每一个步骤了。主要就是下载后解压,修改配置,拷贝到其他节点,该一下myid中的编号后启动即可。

单机模式:

  1. 下载zookeeper-3.4.6.tar.gz:上传到服务器目录
  2. 解压到指定目录:tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/zookeeper
  3. cd zookeeper/conf
  4. 修改配置文件名称:mv zoo_sample.cfg zoo.cfg
  5. cd ..
  6. 启动zookeeper:bin/zkServer.sh start
  7. 验证:jps,看到有这个(QuorumPeerMain)进程就表示zookeeper已经正常启动。

Redis--优化详解

  本片博客,刚开始会讲解一下redis的基本优化,然后会举一些优化示例代码或实例。最后讲解一下,默认启动redis时,所报的一些警示错误

优化的一些建议

  1. 尽量使用短的key
    当然在精简的同时,不要完了key的“见名知意”。对于value有些也可精简,比如性别使用0、1。

  2. 避免使用keys *
    keys *, 这个命令是阻塞的,即操作执行期间,其它任何命令在你的实例中都无法执行。当redis中key数据量小时到无所谓,数据量大就很糟糕了。所以我们应该避免去使用这个命令。可以去使用SCAN,来代替。

  3. 在存到Redis之前先把你的数据压缩下
    redis为每种数据类型都提供了两种内部编码方式,在不同的情况下redis会自动调整合适的编码方式。

  4. 设置 key 有效期
    我们应该尽可能的利用key有效期。比如一些临时数据(短信校验码),过了有效期Redis就会自动为你清除!

Redis--集群

  redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。redis集群提供了以下两个好处:

  1. 将数据自动切分(split)到多个节点
  2. 当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。
  3. 一个 Redis 集群包含 16384 个哈希槽(hash slot),数据库中的每个数据都属于这16384个哈希槽中的一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。集群中的每一个节点负责处理一部分哈希槽
  • 集群中的主从复制:
    集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作这样集群就不会因为一个主节点的下线而无法正常工作

  • 注意:
    如果某一个主节点和他所有的从节点都下线的话,redis集群就会停止工作了
    redis集群不保证数据的强一致性,在特定的情况下redis集群会丢失已经被执行过的写命令使用异步复制(asynchronous replication)是 Redis 集群可能会丢失写命令的其中一个原因,有时候由于网络原因,如果网络断开时间太长,redis集群就会启用新的主节点,之前发给主节点的数据就会丢失

Redis--主从复制

  redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库

  • 通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力主数据库主要进行写操作,而从数据库负责读操作

redis主从复制

Redis--安全策略

  可信环境下的可信用户才可访问redis。这意味着,将redis服务器直接暴露在Internet或者不可信用户可直接访问Redis的tcp端口或Unix套接字的环境,是不安全的。redis着重于高性能和简单易用,在安全方面做得并不好。

网络安全

bind参数(在redis.conf配置文件,添加bind可以让数据库只能在指定IP下访问)。
bind 127.0.0.1 [192.168.3.1 ……]
注意:bind后面指定的ip只能是本机的ip。

认证

设置数据库密码

  1. 修改配置requirepass password
  2. 验证密码auth password
  • 实例 : 修改密码为xiaoxiaomo
    1
    2
    3
    4
    #requirepass foobared
    requirepass xiaoxiaomo

    # Command renaming.

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器