首页 > Nosql DB > Redis集群学习

Redis集群学习

Redis集群学习

1 安装
参照:http://www.cnblogs.com/wuxl360/p/5920330.html
补充如下几点:
1)gem install redis 这一步会报错,因为你懂的原因,可以选择离线安装

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem

2)可以把一个结点做好,然后做成模板,再用模板部署,这样容易的多
2 验证
redis01结点:

[redis@redis01 ~]$ redis-cli -h 192.168.110.51 -c -p 7000
192.168.110.51:7000> set tk “hello world”
-> Redirected to slot [6480] located at 192.168.110.55:7000
OK
192.168.110.55:7000> keys *
1) “tk”

redis06结点看结果:

[redis@redis06 ~]$ redis-cli -h 192.168.110.56 -c -p 7000
192.168.110.56:7000> keys *
1) “hello”
192.168.110.56:7000> get tk
-> Redirected to slot [6480] located at 192.168.110.55:7000
“hello world”

3 启动与停止

停:/usr/local/bin/redis-cli shutdown
启:/usr/local/bin/redis-server /etc/redis.conf

4 设置Redis最大占用内存
Redis设置最大占用内存,打开redis配置文件,如下所示:

# maxmemory
maxmemory 268435456

maxmemory是bytes字节类型,注意转换。般推荐Redis设置内存为最大物理内存的四分之三
设置了maxmemory的选项,redis内存使用达到上限。可以通过设置LRU算法来删除部分key,释放空间。默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。

LRU是Least Recently Used 近期最少使用算法。
volatile-lru -> 根据LRU算法生成的过期时间来删除。
allkeys-lru -> 根据LRU算法删除任何key。
volatile-random -> 根据过期设置来随机删除key。
allkeys->random -> 无差别随机删。
volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
noeviction -> 谁也不删,直接在写操作时返回错误。

可以用info命令查看内存使用情况:

192.168.110.55:7000> info memory
# Memory
used_memory:2438856
used_memory_human:2.33M
used_memory_rss:10047488
used_memory_rss_human:9.58M
used_memory_peak:2480472
used_memory_peak_human:2.37M
total_system_memory:8373686272
total_system_memory_human:7.80G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:4.12
mem_allocator:jemalloc-4.0.3

5 集群操作命令
1)集群

CLUSTER INFO 打印集群的信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
2)节点
CLUSTER MEET 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET 从集群中移除 node_id 指定的节点。
CLUSTER REPLICATE 将当前节点设置为 node_id 指定的节点的从节点。
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
3)槽(slot)
CLUSTER ADDSLOTS [slot …] 将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER DELSLOTS [slot …] 移除一个或多个槽对当前节点的指派。
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
CLUSTER SETSLOT NODE 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
CLUSTER SETSLOT MIGRATING 将本节点的槽 slot 迁移到 node_id 指定的节点中。
CLUSTER SETSLOT IMPORTING 从 node_id 指定的节点中导入槽 slot 到本节点。
CLUSTER SETSLOT STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。
4)键
CLUSTER KEYSLOT 计算键 key 应该被放置在哪个槽上。
CLUSTER COUNTKEYSINSLOT 返回槽 slot 目前包含的键值对数量。
CLUSTER GETKEYSINSLOT 返回 count 个 slot 槽中的键。

6 密码登陆验证
1) 修改配置文件

redis.conf,找到如下行:
#requirepass foobared

去掉前面的注释,并修改为所需要的密码:
requirepass myPassword (其中myPassword就是要设置的密码)

2)重启
3)测试

$ ./redis-cli -h 192.168.10.51 -p 7000 -a myPassword
192.168.110.51:7000> config get requirepass
1) “requirepass”
2) “myPassword”
看到类似上面的输出,说明Reids密码认证配置成功。

分类: Nosql DB 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.