云顶娱乐平台 13

【云顶娱乐平台】Linux下安装和部署Redis

将配置 <processModel
autoConfig=”true”/>

Redis学习—初级篇,安装与配置,redis学习—初级

阅读目录:

   1.  Redis基本介绍

   2.  Redis基于centOs 环境下安装步骤

   3.  Redis常见配置说明

<一>Redis 基本介绍

     1. Redis的官网:

     2. Redis
是一种C语言编写,支持网络,可基于内存并可持久化,日志型,以Key-Value存储形式的存储系统,并且提供各种语言API。

     3. Redis 比Memchace
支持更丰富的数据类型,包括String(mc所支持)、List(链表)、Set(集合)、ZSet(有序集合)、Hash(哈希类型)
数据类型

       
与Mc一样,为了保证数据效率,数据都是缓存在内存中,与Mc不一样的地方是,Redis会按照一定的持久化策略,将缓存的数据持久化到存储设备磁盘上面,

     
 并且可以把修改操作写入到记录文件(AOF)以便服务器重启时继续更新操作,保持数据不丢失。在此基础上支持Master-Slave数据同步,主服务器的数据可以向任意从服务器进行同步。

    4.
Redis支持事务操作,并且所有的操作是原子性的,即要么所有的操作成功,要么一起失败。

<二>Redis 安装(基于CentOs环境下安装)

     1. Redis 目前(2017年4月13日) 官网放出的最新的版本是3.2.8版本.

     2. 在CentOs下使用
wget  即可下载.如下图所示:

          云顶娱乐平台 1

        (wget 命令没有安装,使用yum install wget 安装即可使用)

    3. 使用tar zxvf 解压redis-3.2.8.tar.gz 。即 tar zxvf
redis-3.2.8.tar.gz 

    4. 在redis-3.2.8 目录下,使用make && make install 安装redis服务

        云顶娱乐平台 2

       (编译安装Redis 需要GCC环境,没有,安装GCC即可 yum install gcc)

    5. 启动redis ,src/redis-server 启动redis。如图:

      云顶娱乐平台 3

      redis默认端口是6379.

    <三> Redis常见配置说明与常见命令使用

           1. Redis
所有的配置在redis-3.2.8目录下的redis.conf文件,使用vim
redis.conf即可查看所有的配置以及配置值说明.

           2. Redis常见配置:

               2.1  datafilename
 是指持久化数据的数据库文件名,默认值是dump.rdp,默认放置在redis3.2.8当前目录下

                      若想更改目录,则需要修改dir 配置 默认为dir
./当前目录

               2.2  maxmemory  是指redis
允许最大的缓存内存,单位是字节.默认情况下maxmemory是被注释的,即不限制内存大小.

               2.3 maxmemory****policy 是指最大内存的数据淘汰策略,如果设置了最大内存,则通常会配置淘汰策略,常见的策略有

                    volatile-lru
最近最少使用算法,这个策略可以实现保持内存数据都是热数据

               2.4. bind 配置,默认情况下redis的bind
127.0.0.1,这里bind并非想象中的绑定指定请求来源IP实现安全访问,

                     
而是,监听来自哪个网卡的请求,若当前redis服务器存在多个网卡,那则可以配置其他网卡的IP地址,配置如下

                      bind 127.0.0.1 10.0.0.1
空格隔开。如果只存在一个网卡配置多个IP时,则启动时报错:

                      Creating Server TCP listening socket
10.0.0.1:6379: bind: Cannot assign requested address

                      如果bind 配置127.0.0.1
则只监听本机的请求,即使是同一个内网的客户端也无法请求到redis服务器,

                     
如果想允许与当前redis服务器同一个内网客户端能访问到redis服务器,则可以配置redis服务器真实的IP地址

【云顶娱乐平台】Linux下安装和部署Redis。                      如:bind 192.168.110.210

                2.5 protected-mode,requirepass 配置,
默认情况下proetect-mode  yes
即开启保护模式,相反的配置值no,这个配置与bind配置有关系

                     
如果bind配置是允许所有的外部请求连接(即把bind配置注释掉),那么就会触发protect-mode
模式。通过protect-mode yes 

                     
模式则可以实现一定的安全访问,请求redis服务器连接时,则需要输入AUTH权限密码。如:src/redis-cli
-a 123456

                      Auth权限密码requirepass
配置
有关,requeirepass 123456 即是配置AUTH访问权限密码

             

              

 

     

  

  

阅读目录: 1. Redis基本介绍 2. Redis基于centOs 环境下安装步骤 3.
Redis常见配置说明 一 Redi…

1、到官网下载压缩包,然后解压

#直接复制下载链接,通过wget下载
$ wget http://download.redis.io/releases/redis-4.0.1.tar.gz
#解压
$ tar zxvf redis-4.0.1.tar.gz

 

安装

安装这个步骤很简单,主要参考Linux下Redis的安装和部署,下面说下步骤。

1)、 改为“# bind 127.0.0.1”则是不限制IP访问(前面加符号 #
),如果本机有多个IP,则使用任意一个IP均能访问;

三、问题与总结

在这里我碰到最主要的一个大问题是本地电脑无法连接服务器上的Redis,然后尝试了各种失败的方法

  • 刚开始以为是redis.conf云顶娱乐平台,这个配置文件没配置好,所以尝试在bind后面添加本地的ip,后来发现不行。后来才知道,bind后面添加ip,指定是Redis所在服务器网卡的ip,不是指定某些IP可以访问本机Redis实例,这是一个误区。这可以参考Redis
    bind
    限制和指定IP访问和What
    does the bind parameter do in
    Redis?
  • 各种搜索通过防火墙来开启端口,即通过iptables来实现,后来发现还是不行。这在自己建立的服务器应该有作用,可以限制固定的ip来访问。而阿里云,是在阿里云网站进行配置。
  • 当出现MISCONF Redis is configured to save RDB snapshots错误时,可以使用redis-cli登录,然后输入config set stop-writes-on-bgsave-error no设置来解决,参考:MISCONF
    Redis is configured to save RDB
    snapshots
<appSettings>
  <add key="配置Key名称" value="Redis服务器IP:相应端口,password=设置的访问密码,syncTimeout=同步超时时间单位是这毫秒,abortConnect=在链接不到有效的服务器的时候是否
会创建一个链接实例" />
</appSettings>

补充

  • 2017.9.30:最好在redis.conf中,设置下logfile,这样在redis出错误时,能看到相关错误信息。

 云顶娱乐平台 4

参考

Linux下Redis的安装和部署

redis进阶:密码设置、访问权限控制等安全设置

阿里云开放端口权限

Redis bind
限制和指定IP访问

What does the bind parameter do in
Redis?

在目录:C:WindowsMicrosoft.NETFramework64v4.0.30319Config中找到文件machine.config,

1、修改配置文件

回退到redis-4.0.1/目录,修改redis.conf文件

$ cd ..
# 查看当前目录
$ pwd
/root/redis-4.0.1
$ vim redis.conf

我这里的需求是希望外部机器能访问,所以注释掉bind 127.0.0.1

云顶娱乐平台 5

但是不能随便一台电脑都能连接,所以通过requirepass设置一个密码,最好设置长一点

云顶娱乐平台 6

这样,基本的就设置好了

注意标红的地方,配置规则:

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

 

3、进入src目录,执行make install安装Redis

$ cd src
# 安装
$ make install

然后,在终端输入redis-server看到如下界面,说明安装成功。

云顶娱乐平台 7

Github下载地址:

部署

  示例配置:

2、debug模式,调试连接

(1)首先,我们用debug模式启动服务器,这样能更好的查看状态和分析问题

redis-server redis.conf  --loglevel debug

(2)然后,我们另开一个终端,使用ssh登录到服务器,在服务器上使用客户端连接Redis

$ redis-cli

这里,我们也可以在Redis服务器的终端,看到有一个连接到我们服务器。

云顶娱乐平台 8

(3)之后,我们在redis客户端进行简单操作,使用keys *查看Redis数据库存了key值。

127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

出现了错误,这是因为我们Redis服务器设置了需要密码。这里,我们可以输入auth 1234567来进行获得权限,也可以在登录Redis服务器时,给定密码,例如:redis-cli -a 1234567

127.0.0.1:6379> auth 1234567
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name liuchungui
OK
127.0.0.1:6379> get name
"liuchungui"

从上可以看出来,我们将name的liuchungui字段成功的存入Redis,并且取出来展示。

(4)其后,我们试一下,在本地电脑上连接Redis有没有问题

$ redis-cli -h 192.168.0.299 -a 1234567

注意: 将所有的192.168.0.299换成你自己的服务器ip

然后发现,连接不上,出现Operation timed out

192:~ liuchungui$ redis-cli -p 6379 -h 192.168.0.299 -a 1234567
Could not connect to Redis at 192.168.0.299:6379: Operation timed out
Could not connect to Redis at 192.168.0.299: Operation timed out
not connected> keys *

这时,我通过telnet 192.168.0.299 6397测试服务器的6379端口,居然不通。经过各种google之后,最后找到了解决之法:原来这是因为阿里云没有开放6379端口,只需要到阿里云那里设置一下安全组就行了

云顶娱乐平台 9

阿里云安全组具体添加方法,请参考添加安全组规则

当这里设置好了之后,我在本地就能连接服务器的Redis了。

(5)最后,调试没有问题,我们将Redis设置为后台运行。

编辑redis.conf,然后将daemonize属性改为yes

云顶娱乐平台 10

运行服务器

$ redis-server redis.conf
6997:C 10 Sep 15:10:17.034 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
6997:C 10 Sep 15:10:17.034 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=6997, just started
6997:C 10 Sep 15:10:17.034 # Configuration loaded

到此,我们部署完成。

2、限制IP访问

我们最近需要使用多台机器,分布式爬取数据,采用的框架是scrapy-redis,所以需要在一台服务器上安装Redis。

下载.MSI后下一步安装即可

2、进入Redis目录,对解压后的文件进行编译

# 进入目录
$ cd redis-4.0.1/
# 编译
$ make

修改为 <processModel autoConfig=”false”
maxIoThreads=”250″ minIoThreads=”50″/>

而今天上午,在阿里云服务器上安装部署Redis时,遇到一些问题,没有在网上找到解决办法,记录一下。

2)、 改为“bind 127.0.0.1
10.16.161.16“,表示限制只能使用【本机】这几个IP才能访问。可用于
假设本机有三个IP,但只允许两个IP能访问到Redis的情况。各个IP之间通过一个”空格“符区分开。

注意:

三、必要配置

 

 

 云顶娱乐平台 11

缓存信息通常比较敏感,通过设置密码可有效降低缓存数据外泄可能。设置如下:

  基本格式如下:

云顶娱乐平台 12

1)、abortConnect有时可省,但对于有些服务器而言是必不可少,否则会报错:It
was not possible to connect to the redis server(s); to create a
disconnec.
2)、而abortConnect的值也通常设置为false,可参考:

二、验证安装

1、 在“计算管理”中确保“Redis”已启动

注意:Redis不对访问来源IP做限制,为数据安全可设置访问密码。

一、下载与安装Redis

默认限制了只能本机使用Redis,在想供外部访问则需要在安装目录中找到redis.windows-service.conf文件,找到下图中的文件位置:

4、线程控制

<appSettings>
  <add key="RedisServer" value="127.0.0.1:6379,password=123456,syncTimeout=3000,abortConnect=false" />
</appSettings>

2、 使用命令测试Readis读写

3、.NET平台下的Web.config文件配置

 云顶娱乐平台 13

1、 密码限制