redis(Remote Dictionary Server)
是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,提供了多种语言的API,因其值(value)可以是 字符串(String),哈希(hash),列表(list),集合(sets) 和有序集合(sorted sets)等类型,又被称为数据结构服务器。
Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。Redis服务端的默认端口是6379
Redis和memcache相比的独特之处
- redis可以用来做存储(storge)、而memcache是来做缓存(cache),这个特点主要是因为其有“持久化”功能;
- 存储的数据有“结构”,对于memcache来说,存储的数据,只有一种类型——“字符串”,而redis则可以存储字符串、链表、集合、有序集合、哈希值。
redis 安装流程
-
定位到你要下载和解压的文件夹,如
# cd /usr/local/src
-
依次输入以下指令,进行安装
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
// wget 指令下载 redis 压缩文件- 如果提示
则执行以下语句,安装 wget 命令[root@localhost src]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz -bash: wget: command not found
[root@localhost src]# yum -y install wget
- 执行 wget 命令下载
$ tar -xzvf redis-5.0.3.tar.gz
// tar 指令解压文件
$ cd redis-5.0.3
// 定位到解压成的文件夹 redis-5.0.3
$ make
// 调用 make 指令,执行编译,make是自动编译,会根据Makefile中描述的内容来进行编译
如果出现报错
cc: command not found
,则安装gcc命令,gcc是c的编译命令
# yum -y install gcc-c++
// 安装 make 工具的编译器 gcc
安装成功后,再次执行 make 命令,如果再次报错
则输入
make clean
后再次 执行make
,然后检查redis-5.0.3/src
目录或/usr/local/bin
下有没有redis-server
、redis-cli
,若无,则把redis-5.0.3 文件夹删掉,再解压一次redis的压缩包,然后cd redis-5.0.3
进入文件夹中,再次执行make 指令
如果执行make test
出现You need tcl 8.5 or newer in order to run the Redis test
,需要安装tcl
,输入yum install tcl
,然后make test
就可以再执行了
安装 tcl 之后,如果再次make test 报错 warning,则先执行make clean
,接着再执行make
,然后再执行make test
即可
或者使用# make PREFIX=/usr/local/src/redis install
// 执行安装,指向特定的文件夹 redis
PS: 注意此命令的使用,尽量不和make
同时使用,避免安装到了不同的文件夹,而引起后面./redis-server
和./redis-cli
启动宕机的情况,因此 尽量避免make
使用了之后还用# make PREFIX=/usr/local/src/redis install
指定 prefix 的优点linux中不指定 prefix 文件默认存放 可执行文件 /usr/local/bin 库文件 /usr/local/lib 配置文件 /usr/local/etc 其他资源文件 /usr/local/share 如果要卸载这个程序,要么在原来make目录下用make uninstall,要么去上述文件中一个一个手动删除,而指定
prefix
,直接删掉一个文件夹就够了。 - 如果提示
-
进入 安装 redis 的文件夹 usr/local/src/redis-5.0.3/src ,启动 redis 服务器,并进行相关配置
# cd usr/local/src/redis-5.0.3/src
# ./redis-server
// 启动 redis 服务器,第一次启动
默认情况下,redis不是在后台运行,我们需要把redis放在后台运行;
当执行 redis-server 后不继续操作,且没有提示congratulation loaded
,此时是在前台启动的,按ctrl + C 可退出redis 启动窗口,此时 redis 并不会关闭,而是会在后台运行,可通过命令ps aux | grep redis
查看,并且此时需要重新启动一个客户端来进行登陆操作,这样非常不方便,所以,我们需要设置通过配置项启动,control + z 退出,进入cd usr/local/src/redis-5.0.3
找到redis.conf,输入:
# vim redis.conf
# redis-server /usr/local/src/redis-5.0.3/redis.conf
// 修改 daemonize 之后退出,启动该列指令,usr前面的斜杠不能少,末尾一定要带上redis.conf,以后启动都需要执行该指令,否则同样需要新开窗口
设置 redis 服务器脚本启动步骤
- 复制目标文件:在
/etc/init.d
目录下创建redis的启动脚本:将 redis-5.0.3 目录下的 utils/redis_init_script 复制到 /etc/init.d 目录下,命名为 redis_scriptstart
- 编辑启动文件,修改其中指定的pid和配置文件
-
创建存放pid(进程id)的文件夹,/var/redis/run,注意 redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no
->daemonize yes
,当 redis 以守护进程方式运行时,redis默认会把pid写入 /var/redis/run/redis_6379.pid 文件,可以通过pidfile指定pidfile /var/redis/run/redis_6379.pid
-
创建存放配置文件的文件夹,/etc/redis,并将配置文件复制到此目录下,同时修改 .conf 配置
最后便可以通过service redis_scriptstart start
指令开启 redis 服务器。
redis-benchmark | redis性能测试工具 |
---|---|
redis-check-aof | 检查aof日志的工具 |
redis-check-dump | 检查rdb日志的工具 |
redis-cli | 连接用的客户端 |
redis-server | redis服务进程 |