redis是一种key-value高效的内存数据库。

key-value是什么?json懂吧?字典懂吧?这些都是key-value结构的数据,每个key对应1个value。

那这个数据库和我们网站在使用的数据库有什么区别?我网站既然已经有数据库,为什么还要用其他数据库?

redis是内存数据库,则数据读写和存储都在内存中。该操作不用写入硬盘,读写效率很高。

我们可用它作为服务器缓存,对经常读写或不经常更新的数据预先读到内存中。使用该数据时,直接从内存中读取。也可以每隔一段时间再将内存中的数据写入到硬盘。减少与硬盘读写数据的操作,效率自然可以大大提高。

我网站有个阅读排行榜,每次打开页面都需要从数据库中统计获取。效率稍慢,所以我寻思使用redis。

1、在CentOS安装Redis

redis安装过程,其官网有说明:https://redis.io/download

我服务器是CentOS Linux系统,根据官网指导。如下执行shell命令:

  1. wget http://download.redis.io/releases/redis-3.2.8.tar.gz
  2. tar xzf redis-3.2.8.tar.gz
  3. cd redis-3.2.8
  4. make

第1句是下载redis;第2句是解压;第3句是进入解压的目录;第4句是编译。

若在编译过程中发生gcc或tcl等错误,多半缺少gcc和tcl,安装它们即可。

编译完成之后,在redis解压目录中,多了src目录。执行如下命令进入该目录:

  1. cd src
  2. ls

ls命令是显示文件列表,如下文件:

你可以先测试看是否可以打开redis:

  1. ./redis-server

若出现如下界面,则运行没问题。

我们使用redis数据库需要开启redis-server。为了使用方便,我们编译完成之后,还需要安装对应的命令。执行如下命令:

make install

执行该命令需要root权限。若没有root权限则无法执行。

如果服务器没有root权限。手工将必要的文件复制到用户的bin目录:

  1. cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server ~/bin

这里复制了src目录下6个文件,对应6个命令。分别作用如下:

redis-benchmark   压力测试工具

redis-check-aof     检查redis持久化命令文件的完整性

redis-check-rdb     检查redis持久化数据文件的完整性

redis-cli                  redis客户端

redis-sentinel         redis-sentinel是集群管理工具,主要负责主从切换。

redis-server            redis服务器的daemon启动程序

另外,既然是服务器,作为生产环境总不能手动打开redis-server。这里有两种方法,也是针对可否拿到root权限。

1)可以拿到root权限的话,就将redis注册成服务。

redis解压目录中,utils文件夹的redis_init_script是服务安装的脚本。打开并修改如下参数:

 #服务端所处位置,需要修改
EXEC=/usr/local/bin/redis-server #客户端位置,需要修改
CLIEXEC=/usr/local/bin/redis-cli #配置文件位置,需要修改
CONF="/etc/redis/redis.conf"

分别修改这3个参数指定具体位置。EXEC、CLIEXEC配置文件一般不需要修改,可直接使用,CONF的redis.conf路径需要重新配置一下。

修改保存之后,复制该文件到/etc/init.d目录下:

cp redis_init_script /etc/init.d/redisd

可通过如下3个命令控制该服务:

 #设置为开机自启动服务器
chkconfig redisd on #打开服务
service redisd start #关闭服务
service redisd stop

2)没有root权限,让redis-server后台运行

该方法也比较简单。打开redis.conf配置文件,找到daemonize参数将其设置为yes。该参数是让redis-server后台运行。

再使用redis-server 打开并使用该配置文件:

redis-server redis.conf

执行之后,可以进入redis客户端查看redis-server是否开启:

redis-cli

若没有显示not connect等字样,显示IP地址加端口则已经开启。

可以输入如下命令测试redis:

 #写入数据
set s #获取数据
get s #列举全部key
keys * #删除数据
del s

关闭redis-server后台运行,可用redis-cli的命令:

redis-cli shutdown

为了方便管理,可以将redis开启和关闭写成脚本。

例如,启动脚本:

 #!/bin/bash
redis-server /root/redis-3.2.8/redis.conf

停止脚本:

 #!/bin/bash
redis-cli shutdown

重启脚本:

 #!/bin/bash
redis-cli shutdown
redis-server /root/redis-3.2.8/redis.conf

具体的redis.conf自己指定即可,而且还需要给这些脚本执行权限。

2、在Windows安装redis

Redis不支持Windows!在它官网写得很清楚。

问题,我开发环境有时是Windows系统。为了方便开发和调试,需要在Windows中安装Redis。

微软自己弄了Redis的Windows版本。

打开https://github.com/MSOpenTech/redis/releases下载msi安装包。

该版本是64位。32位版本自行找一下。

安装msi过程中,有个选项是否加入系统环境变量,记得勾上。

一路下一步,安装。完成之后打开cmd,输入redis-server命令查看是否可以使用。不可以则重启一下即可。

直接输入redis-server命令使用的配置文件是安装目录下的redis.windows.conf文件。

若提示错误 “ConnectionError: Error 10061 connecting to None:6379”,可以如下操作,打开cmd输入如下命令:

 redis-cli shutdown

再执行redis-server即可。

Redis在CentOS和Windows安装过程的更多相关文章

  1. CentOS 6.9安装过程

    下载: https://wiki.centos.org/Download 安装过程: 分区方案一: 以下为大概的分区步骤,根据实际需要进行分配: 最终分区的配置大小如下所示: 推荐更详细的分区方案,参 ...

  2. redis centos 6.5 redis版本3.2.8安装过程

    redis作为非关系数据库的典型应用,在庞大的数据通信处理有着自己强大的优势,今天也自己来开始学些redis. 以下每一个语句都是我执行的命令. 按照所查资料分析,需要tcl测试工具,这个在cento ...

  3. Testlink在CentOS、windows安装

    有幸在CentOS\windows上都安装过Teslink程序,总结一下.如下: 一.CentOS安装: 1.安装包需要: xampp xampp-linux-x64-5.6.3-0-installe ...

  4. CentOS 6.3 安装过程

    1.放入光盘 2.安装欢迎界面 进入安装欢迎界面,有四个选项: 1.“Install or upgrade an existing system”:安装或升级现有系统 2. “Install syst ...

  5. centos上如何安装redis?|centos傻瓜式安装redis教程

    本文介绍centos安装redis,请不要安装2.4.3,是有问题的. 首先安装gcc yum -y install gcc yum -y install gcc-c++ yum install ma ...

  6. redis 在centos下的安装部署

    安装的redis版本是 redis-3.0.2 请严格按照以下步骤进行 可以免除以下错误 1 make[2]: cc: Command not found 异常原因:没有安装gcc 解决方案:yum ...

  7. Centos 下 mysql 安装过程

    1. 检查系统自带的Mysql,并卸载自带的版本 [root@iZ2366ycl7sZ config]# yum list installed |grep mysql mysql.x86_64 5.1 ...

  8. Redis在centos上面的安装

    一.安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@iZwz991stxd ...

  9. 安装centos 7 体验安装过程

    1. 下载centos7的iso文件,放入虚拟机的启动光盘中 2. 选择启动,然后可以看到安装的选项 3. 进行安装之后,会自动的进行一个检查 4. 选择安装的语言 5. 进入之后,可以看到所有需要安 ...

随机推荐

  1. 第七章· Redis Cluster 核心技术

    Redis Cluster 分布式集群 Redis Cluster 安装部署 Redis Cluster 集群管理操作(核心)

  2. Siamese network 孪生神经网络

    Siamese network 孪生神经网络 https://zhuanlan.zhihu.com/p/35040994 https://blog.csdn.net/shenziheng1/artic ...

  3. codeforces733C

    Epidemic in Monstropolis CodeForces - 733C 有n条鱼排成一列,第i条鱼大小为ai,根据自然界的生存法则,相邻的两只鱼中,较大的鱼可以吃掉较小的鱼,如果两条鱼大 ...

  4. AJAX异步、sweetalert、Cookie和Session初识

    一.AJAX的异步示例 1. urls.py from django.conf.urls import url from apptest import views urlpatterns = [ ur ...

  5. 【CF1132F】Clear the String(动态规划)

    [CF1132F]Clear the String(动态规划) 题面 CF 题解 考虑区间\(dp\). 增量考虑,每次考虑最后一个字符和谁一起删去,然后直接转移就行了. #include<io ...

  6. 深入理解ES6箭头函数中的this

    简要介绍:箭头函数中的this,指向与一般function定义的函数不同,比较容易绕晕,箭头函数this的定义:箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定. 1.何为定义时 ...

  7. JMeter5.1开发TCP协议接口脚本

    最简单的方法,就是找开发给报文,直接复制到tcp取样器中,将需要变化的值做参数化就可以了.(xml报文要去掉回车换行) 下面是一个通讯头定义 通讯头56个字节(1个字符一个字节) 3 + 9 + 9 ...

  8. Lua语法基础(一)

    1. 注释 -- 单行注释 --[[ 多行注释 --]] 2. 运行方式     (1)交互式运行         命令行下 lua进入交互模式     (2)命令行运行         lua + ...

  9. SOC(网络安全管理平台)

    SOC平台,网络安全管理平台. 提供集中.统一.可视化的安全信息管理,通过实时采集各种安全信息,动态进行安全信息关联分析与风险评估,实现安全事件的快速跟踪.定位和应急响应.从监控.审计.风险和运维四个 ...

  10. Git 分支(一)简介&创建分支

    理解Git暂存区 文件.git/index是一个包含文件索引的目录树,像是一个虚拟的工作区.在这个虚拟工作区的目录树中,记录了文件名和文件的状态信息.以便快速检测文件的变化.              ...