redis 在linux中的安装部署文档教程

一.安装必要包

yum install gcc

二.linux下安装

#下载
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
#如果不加参数,linux下会报错
make MALLOC=libc

 安装好之后,启动文件

#启动redis
src/redis-server &

#关闭redis
src/redis-cli shutdown

测试redis

$ src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
$ 

测试成功

redis cluster集群搭建

建立本机测试环境

建立运行目录

#建立redis运行目录
mkdir -p redis-server/7000/
#复制默认的配置文档
cp redis-3.0.0/redis.conf redis-server/redis.default.conf
#把编译好的server复制到运行目录
cp redis-3.0.0/src/redis-server redis-server/7000/

建立独立配置文件

#在7000目录下建立redis的配置文档
vim redis-server/7000/redis.conf

文件内容

复制代码
#redis-server/7000/redis.conf
include /root/redis-server/redis.default.conf
pidfile /var/run/redis-7000.pid
port 7000
cluster-enabled yes
cluster-config-file redis-node-7000.conf
cluster-node-timeout 5000 appendonly yes
复制代码

复制运行目录(模拟集群环境)

#复制目录
cp -R 7000/ 7001/
cp -R 7000/ 7002/
cp -R 7000/ 7003/
cp -R 7000/ 7004/
cp -R 7000/ 7005/

修改相应配置文件的端口和文件名

建立启动脚本 redis-server/redis-start.sh

复制代码
#!/bin/sh
/root/redis-server/7000/redis-server /root/redis-server/7000/redis.conf &
/root/redis-server/7001/redis-server /root/redis-server/7001/redis.conf &
/root/redis-server/7002/redis-server /root/redis-server/7002/redis.conf &
/root/redis-server/7003/redis-server /root/redis-server/7003/redis.conf &
/root/redis-server/7004/redis-server /root/redis-server/7004/redis.conf &
/root/redis-server/7005/redis-server /root/redis-server/7005/redis.conf &
复制代码

配置集群

安装ruby

yum install ruby-devel.x86_64

安装redis gem 

# gem install redis
Fetching: redis-3.2.1.gem (100%)
Successfully installed redis-3.2.1
Parsing documentation for redis-3.2.1
Installing ri documentation for redis-3.2.1
1 gem installed

使用脚本建立集群机制  

在create的时候,加上参数--replicas 1 表示为每个master分配一个salve,如例子,则是3个master 3个salve

复制代码
# ./redis-trib.rb create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK Connecting to node 127.0.0.1:7005: OK >>> Performing hash slots allocation on 6 nodes... Using 6 masters: 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 M: f3dd250e4bc145c8b9f864e82f65e00d1ba627be 127.0.0.1:7000 slots:0-2730 (2731 slots) master M: 1ba602ade59e0770a15128b193f2ac29c251ab5e 127.0.0.1:7001 slots:2731-5460 (2730 slots) master M: 4f840a70520563c8ef0d7d1cc9d5eaff6a1547a2 127.0.0.1:7002 slots:5461-8191 (2731 slots) master M: 702adc7ae9caf1f6702987604548c6fc1d22e813 127.0.0.1:7003 slots:8192-10922 (2731 slots) master M: 4f87a11d2ea6ebe9caf02c9dbd827a3dba8a53cf 127.0.0.1:7004 slots:10923-13652 (2730 slots) master M: 216bbb7da50bd130da16a327c76dc6d285f731b3 127.0.0.1:7005 slots:13653-16383 (2731 slots) master Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join... >>> Performing Cluster Check (using node 127.0.0.1:7000) M: f3dd250e4bc145c8b9f864e82f65e00d1ba627be 127.0.0.1:7000 slots:0-2730 (2731 slots) master M: 1ba602ade59e0770a15128b193f2ac29c251ab5e 127.0.0.1:7001 slots:2731-5460 (2730 slots) master M: 4f840a70520563c8ef0d7d1cc9d5eaff6a1547a2 127.0.0.1:7002 slots:5461-8191 (2731 slots) master M: 702adc7ae9caf1f6702987604548c6fc1d22e813 127.0.0.1:7003 slots:8192-10922 (2731 slots) master M: 4f87a11d2ea6ebe9caf02c9dbd827a3dba8a53cf 127.0.0.1:7004 slots:10923-13652 (2730 slots) master M: 216bbb7da50bd130da16a327c76dc6d285f731b3 127.0.0.1:7005 slots:13653-16383 (2731 slots) master [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
复制代码

 如果需要全部重新自动配置,则删除所有的配置好的cluster-config-file,重新启动所有的redis-server,然后重新执行配置命令即可

 Redis 队列

刚刚百度了一下redis的队列,大致应该是两个redis的方法

EnqueueItemOnList 将一个元素存入指定ListId的List<T>的头部
DequeueItemFromList 将指定ListId的List<T>末尾的那个元素出列,返回出列元素

public class MyExceptionFilterAttribute : HandleErrorAttribute
    {
        //版本2:使用Redis的客户端管理器(对象池)
        public static IRedisClientsManager redisClientManager = new PooledRedisClientManager(new string[] 
        {
            //如果是Redis集群则配置多个{IP地址:端口号}即可
            //例如: "10.0.0.1:6379","10.0.0.2:6379","10.0.0.3:6379"
            "127.0.0.1:6379"
        });
        //从池中获取Redis客户端实例
        public static IRedisClient redisClient = redisClientManager.GetClient();

        public override void OnException(ExceptionContext filterContext)
        {
            //将异常信息入队
            redisClient.EnqueueItemOnList("ExceptionLog", filterContext.Exception.ToString()); //跳转到自定义错误页 filterContext.HttpContext.Response.Redirect("~/Common/CommonError.html"); base.OnException(filterContext); } }

 取得时候记得判断是否大于0  if(redisClient.GetListCount("ExceptionLog")>0){//取出队列}

主从配置

   Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面楼主简单的进行一下配置。

  1、上面安装好的一个Redis作为master,然后使用VirtualBox的虚拟机克隆功能将刚刚那个linux系统克隆一份作为slave,并修改其IP为192.168.0.110。

  2、修改slave的redis配置文件:

    slaveof 192.168.0.100 6379  (映射到主服务器上)

    如果master设置了验证密码,还需配置masterauth。楼主的master设置了验证密码为admin,所以配置masterauth admin。

  配置完之后启动slave的Redis服务,OK,主从配置完成。下面测试一下:

  在master和slave分别执行info命令,

参考:http://www.cnblogs.com/liuling/p/2014-4-19-02.html

一.安装必要包

yum install gcc

二.linux下安装

#下载
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
#如果不加参数,linux下会报错
make MALLOC=libc

 安装好之后,启动文件

#启动redis
src/redis-server &

#关闭redis
src/redis-cli shutdown

测试redis

$ src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
$ 

测试成功

redis cluster集群搭建

建立本机测试环境

建立运行目录

#建立redis运行目录
mkdir -p redis-server/7000/
#复制默认的配置文档
cp redis-3.0.0/redis.conf redis-server/redis.default.conf
#把编译好的server复制到运行目录
cp redis-3.0.0/src/redis-server redis-server/7000/

建立独立配置文件

#在7000目录下建立redis的配置文档
vim redis-server/7000/redis.conf

文件内容

复制代码
#redis-server/7000/redis.conf
include /root/redis-server/redis.default.conf
pidfile /var/run/redis-7000.pid
port 7000
cluster-enabled yes
cluster-config-file redis-node-7000.conf
cluster-node-timeout 5000 appendonly yes
复制代码

复制运行目录(模拟集群环境)

#复制目录
cp -R 7000/ 7001/
cp -R 7000/ 7002/
cp -R 7000/ 7003/
cp -R 7000/ 7004/
cp -R 7000/ 7005/

修改相应配置文件的端口和文件名

建立启动脚本 redis-server/redis-start.sh

复制代码
#!/bin/sh
/root/redis-server/7000/redis-server /root/redis-server/7000/redis.conf &
/root/redis-server/7001/redis-server /root/redis-server/7001/redis.conf &
/root/redis-server/7002/redis-server /root/redis-server/7002/redis.conf &
/root/redis-server/7003/redis-server /root/redis-server/7003/redis.conf &
/root/redis-server/7004/redis-server /root/redis-server/7004/redis.conf &
/root/redis-server/7005/redis-server /root/redis-server/7005/redis.conf &
复制代码

配置集群

安装ruby

yum install ruby-devel.x86_64

安装redis gem 

# gem install redis
Fetching: redis-3.2.1.gem (100%)
Successfully installed redis-3.2.1
Parsing documentation for redis-3.2.1
Installing ri documentation for redis-3.2.1
1 gem installed

使用脚本建立集群机制  

在create的时候,加上参数--replicas 1 表示为每个master分配一个salve,如例子,则是3个master 3个salve

复制代码
# ./redis-trib.rb create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK Connecting to node 127.0.0.1:7005: OK >>> Performing hash slots allocation on 6 nodes... Using 6 masters: 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 M: f3dd250e4bc145c8b9f864e82f65e00d1ba627be 127.0.0.1:7000 slots:0-2730 (2731 slots) master M: 1ba602ade59e0770a15128b193f2ac29c251ab5e 127.0.0.1:7001 slots:2731-5460 (2730 slots) master M: 4f840a70520563c8ef0d7d1cc9d5eaff6a1547a2 127.0.0.1:7002 slots:5461-8191 (2731 slots) master M: 702adc7ae9caf1f6702987604548c6fc1d22e813 127.0.0.1:7003 slots:8192-10922 (2731 slots) master M: 4f87a11d2ea6ebe9caf02c9dbd827a3dba8a53cf 127.0.0.1:7004 slots:10923-13652 (2730 slots) master M: 216bbb7da50bd130da16a327c76dc6d285f731b3 127.0.0.1:7005 slots:13653-16383 (2731 slots) master Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join... >>> Performing Cluster Check (using node 127.0.0.1:7000) M: f3dd250e4bc145c8b9f864e82f65e00d1ba627be 127.0.0.1:7000 slots:0-2730 (2731 slots) master M: 1ba602ade59e0770a15128b193f2ac29c251ab5e 127.0.0.1:7001 slots:2731-5460 (2730 slots) master M: 4f840a70520563c8ef0d7d1cc9d5eaff6a1547a2 127.0.0.1:7002 slots:5461-8191 (2731 slots) master M: 702adc7ae9caf1f6702987604548c6fc1d22e813 127.0.0.1:7003 slots:8192-10922 (2731 slots) master M: 4f87a11d2ea6ebe9caf02c9dbd827a3dba8a53cf 127.0.0.1:7004 slots:10923-13652 (2730 slots) master M: 216bbb7da50bd130da16a327c76dc6d285f731b3 127.0.0.1:7005 slots:13653-16383 (2731 slots) master [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
复制代码

 如果需要全部重新自动配置,则删除所有的配置好的cluster-config-file,重新启动所有的redis-server,然后重新执行配置命令即可

猜你喜欢

转载自www.cnblogs.com/xiaoshi657/p/9294462.html