redis集群搭建


Table of Contents

参考资料

Redis 集群是一个提供在多个Redis间节点间共享数据的程序集

准备

集群开始需要运行redis集群实例,而且要让集群正常运作至少需要三个主节点,这里创建六个节点,三个为主节点,三个为从节点,端口号分别为9001,9002,9003,9004,9005,9006

并创建六个以端口号为名字的目录, 在每个目录中运行一个Redis实例

mkdir -p redis/9001
cd redis
mkdir 9002
mkdir 9003
mkdir 9004
mkdir 9005
mkdir 9006

然后将对应的配置redis.conf放入相应的目录中(记得修改端口号)

最小配置选项:

port 9001
cluster-enabled yes
cluster-config-file node9001.conf
cluster-node-timeout 5000
appendonly yes

然后就可以启动redis实例了

redis-server redis/9001/redis.conf …

redis记录用户操作


必须得记下来,否则等那天看到又要浪费时间了,主要记录访问时间这里

    '''记录访问的时间'''
    now_time = int(time()) #首先得到当前时间戳 
    '''查询上次访问的时间和最近访问的时间'''
    query_last_time = redis_data.zscore(visited_users,'last_time')
    query_now_time = redis_data.zscore(visited_users,'time')
    '''判断查询是否为空,一般是第一次访问还未记录的IP'''
    if query_last_time is None:
        query_last_time = now_time
        pipe.zadd(visited_users,query_last_time,'last_time')
    if query_now_time is None:
        query_now_time = now_time
    '''将当前时间与last_time进行对比,十分钟之内不记录'''
    if now_time - query_last_time >= 600:
        '''这里类似交换更新数据,把query_now_time变成last_time,把now_time更新'''
        pipe.zadd(visited_users,query_now_time,'last_time')
        pipe.zadd(visited_users,now_time,'time')
    else:
        pipe.zadd(visited_users,now_time,'time')