您现在的位置是:首页 > 文章内容文章内容

Redis简介与安装配置

lipeng2019-08-27 17:37:14NoSql1人已围观


一 :关于Redis

    Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储要求。同时Redis的诸多高层级功能使其可以胜任消息队列、任务队列等不同的角色。

二:Redis的特性

   1:以字典结构存储数据

      Redis以字典结果存储数据,并允许其他应用通过TCP协议读写字典中的内容。Redis字典中的键值出了可以是字符串外,还支持散列类型、列表类型、集合类型与有序集合类型等。Redis字典结构的存储方式和对多种键值数据类型的支持使得开发者可以将程序中的数据直接映射到Redis中。Redis的另一个优势是其对不同的数据类型提供了非常方便的操作方式,如使用集合类型存储文章标签,Redis可以对标签进行如交集、并集这样的集合运算操作。

   2:内存存储与持久化

        Redis数据库中所有的数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redi在性能上对比其它基于硬盘存储的数据库有非常明显的优势。将数据存储在内存中也有问题,比如程序推出后内存中的数据会丢失。不过Redis提供了对持久化的支持,即可以将内存中的数据异步写入硬盘中,同时不影响继续服务。

   3:功能丰富

        Redis虽然是作为数据库开发的,但由于提供了丰富的功能,越来越多的人将其用作缓存、队列系统等。

三 :Redis安装

        * 安装Redis前需要了解Redis的版本规则以选择合适的版本,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版,3.0版),奇数版本是非稳定版(如2.7版,2.9版),目前最新稳定版为3.2.9

        1.Linux下安装Redis

            Redis最新稳定版可以在http://download.redis.io/releases/redis-3.2.9.tar.gz下载,下载安装包后解压即可使用make命令完成编译,完整命令如下:

        wget http://download.redis.io/releases/redis-3.2.9.tar.gz

        tar xzf redis-3.2.9.tar.gz

        cd redis-3.2.9

        make

        make install

        Redis没有其他外部依赖,安装过程简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,最好在编译后直接执行make install 命令来将这些可执行程序复制到/usr/local/bin 目录中以便以后执行程序时可以不用输入完整的路径,再实际运行Redis前推荐使用make test命令测试Redis是否编译正确,尤其是在编译一个不稳定版本的Redis时。

        2.Windows下安装Redis

            Redis官方不支持windows。2011年微软向Redis提交了一个补丁,以使Redis可以在windows下编译运行,但被Salvatore Sanfilippo(意大利人,Redis作者)拒绝了,原因是服务器领域上Linux已经得到了广泛使用,让Redis在windwos下运行显得不那么重要,并且兼容windows会耗费太大的精力而影响Redis其它功能的开发。尽管如此,windows还是发表了一个可以在windows下运行的分支,而且更新相当频繁。

           如果不需要最新版,可直接在https://github.com/MSOpenTech/redis/releases下载安装包。Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis

                打开一个 cmd 窗口  使用cd命令切换目录到 C:\redis  运行 redis-server.exe redis.windows.conf

如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

redis-install1.png

        这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。

        切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379

        设置键值对 set myKey abc

        取出键值对 get myKey

redis-install2.jpg

               如果需要使用最新版本,可以使用Cygwin软件来完成。Cygwin能够在windows中模拟linux系统环境。Cygwin实线了一个API接口,使得大部分Linux下的软件可以重新编译后在windows下运行。Cygwin还提供了自己的软件包管理工具,让用户可以方便升级安装几千个软件包。

               安装Cygwin:从Cygwin官网 http://cygwin.com  下载setup.exe程序,安装运行它。编译Redis需要用到的包有gcc和make,二者都可以在“Devel”分类中找到,在“new”字段中标记为“Skip”表示不安装,单击“Skip”切换成需要安装的版本号即可令Cygwin在稍后安装该版本的包。

              为了方便使用,我们还可以安装wget(用于下载Redis源码,也可以手动下载并将其复制到Cygwin对应的目录中)和vim(用于修改Redis源码使之可以在Cygwin下正常编译)。

             之后单击“Next”,安装向导就会自动完成下载和安装工作了。

             安装成功后打开Cygwin Terminal 程序即可进入Cygwin环境,Cygwin会将windows中的目录映射到Cygwin中。

             使用linux命令下载解压Redis

        wget http://download.redis.io/releases/redis-3.2.9.tar.gz

        tar xzf redis-3.2.9.tar.gz

        cd redis-3.2.9

        为了使Redis源代码可以正常在Cygwin下编译,我们需要修改Redis部分源代码;

        首先编辑src目录下的redis.h文件,在头部加入:

        #ifdef CYGWIN

        #ifdef SA ONSTACK

        #define SA ONSTACK 0x8000000

        #endif

        #endif

        而后编辑src目录下的object.c文件,在头部加入;

        #define strtold(a,b) ((long double) strtod((a),(b)))

        修改完成,使用make命令完成编译安装即可

        make

        make install

四 :Redis启动

       1.直接启动 直接运行redis-server即可启动redis,Redis安装默认使用6379端口,可通过--port参数自定义端口号 如 redis-server --port 6380

       2.通过初始化脚本启动redis   在redis中可以通过初始化脚本启动redis使得Redis能跟随系统自动运行,生产环境下推荐使用此方法运行Redis。在Redis的源代码目录的utils文件夹下有一个名为redis_init_script 的初始化脚本文件,我们需要配置Redis的运行方式和持久化文件、日志文件的存储位置等,具体步骤如下;

       (1)配置初始化脚本,先将初始化脚本复制到/etc/init.d中,文件名为redis_端口号,其中端口号表示要让Redis监听的端口号,客户端通过该端口号连接Redis。然后修改脚本第六行的REDISPORT 变量的值为同样的端口号

       (2)建立需要的文件夹

                /etc/redis     存放redis的配置文件

                /var/redis/端口号   存放redis持久化文件

       (3)先将配置文件模板redis.conf复制到/etc/redis目录,以端口号命名,如6379.conf 然后编辑以下参数

             参数            值                                       说明

            daemonle   yes                                      使Redis以守护进程模式运行

            pidfile         /var/run/redis_端口号.pid   设置Redis的PID文件位置

            port            端口号                                  设置redis监听的端口号

            dir               /var/redis/端口号                 设置持久化文件存放位置

         现在就可以使用/etc/init.d/redis_端口号 start 来启动redis了,而后需要执行下面的命令使Redis跟随系统自动启动

         sudo update-rc.d redis_端口号 defaults

五 :Redis停止

        考虑到Redis可能正在将内存中的数据同步到硬盘中,强行终止Reids进程可能会导致数据丢失。正确停止Redis的方式应该是向Redis发生SHUTDOWN命令,方法为;

      redis-cli SHUTDOWN

      当Redis收到shutdown命令后,会先断开所有客户端连接,然后根据配置执行持久化,然后推出。

      Reids可以妥善处理SIGTERM信号,所以使用kill Redis进程的PID也可以正常结束Redis,与发生SHUTDOWN命令一样。

用户评论:

我的名片

姓名:李鹏

职业:PHP开发工程师

现居:广东省-深圳市

Email:lipeng4203@163.com