Redis简介
Redis是REmote DIctionary Server(远程字典服务器)的缩写,是一个开源的、基于键值对的缓存与存储系统,同时Redis提供的诸多高级功能可以用于消息队列和任务队列
使用过JS脚本的都应该熟悉dict["name"] = "Jack"的,我们可以把它理解成一种字典结构变量,其中name是键名,Jack是键值;而Redis就是以字典结构来存储数据的,并且它还允许其它应用通过TCP协议读写字典中的内容;
Redis支持的键值类型共5总:字符串类型、散列类型、列表类型、集合类型、有序集合类型
从数据存储的角度来看,Redis主要提供了如下优势:
(1)数据存储的方式更贴近程序中的存储方式和符合人的思维方式
(2)针对不同的数据类型提供了非常方便的操作方式,相当于关系型数据库中的内置函数
(3)它的数据存储在内存中,数据读写速度更快,1秒内约读写10万个键值
(4)Redis命令比SQL更加简单
POSIX系统中安装Redis
Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版本,奇数版本的是非稳定版本,生产环境中一般都使用稳定版本,即次版本号是偶数的版本
POSIX是(Portable Operating System Interface Of Unix)的缩写,POSIX系统包括Linux、SUN OS、AIX等,在此类系统中可直接下载Redis的源码编译安装,下载、编译、安装过程可由下面的面的命令完成:
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make
wget是一个从网络上自动下载文件的工具,支持通过常见的TCP/IP协议(HTTP、HTTPS、FTP)下载,它有一个非常显著的优势就是自动下载,即当用户退出系统后它会继续在后台执行
编译后直接执行make install命令可以将这些可执行程序复制到usr/local/bin目录下,这样的好处是可以避免每次执行程序时输入完整的路径名称,usr是FHS针对目录树架构定义的三层目录中的一个,表示unix software resource,主要与软件的安装和执行有关,bin目录下存放的指令可以被root与一般账号使用
另外在运行Redis之前最好使用make test命令测试一下make指令是否正确执行
启动Redis
启动Redis有两种方式:(1)直接启动(2)通过初始化脚本启动
(1)直接启动
运行redis-server即可启动Redis,redis默认是使用6379端口,通过--port参数可以自定义端口号
redis-server --port 6255
(2)通过初始化脚本启动
在Linux系统中可以通过初始化脚本启动Redis,使得Redis能够随系统自动运行。我们需要配置Redis的运行方式和持久化文件、日志文件和存储位置。Redis的初始化脚本redis_init_script存放在Redis源码的utils文件夹中
配置初始化脚本:首先将初始化脚本复制到/etc/init.d目录下,文件名为redis_端口号,端口号表示要让Redis监听的端口,客户端就是通过该端口连接Redis服务的
建文件夹:文件夹下建立两个目录,/etc/redis(存放Redis配置文件)、/var/redis/端口号(存放Redis的持久化文件)
修改配置文件:将配置文件模板复制到/etc/redis目录下,并以端口号命名(如:6255.conf),然后按照如下图所示的修改配置文件
执行命令,使得Redis随系统自动启动:$ sudo update-rc.d redis_端口号 defaults
在Linux中一个service的启动、停止、重启等都是通过/etc/init.d目录下的脚本来控制的
当要删除一个服务时:update-rc.d -f tomcat start
当要增加一个服务时:update-rc.d tomcat defaults
停止Redis
强行终止redis进程可能会导致数据丢失,因为此时redis可能正在将内存中的数据同步到硬盘当中;正确停止redis的方式是向redis发送SHUTDOWN命令:$ redis-cli SHUTDOWN
redis收到SHUTDOWN命令后会先断开所有客户端连接,然后根据上面的配置执行持久化,持久化完成后退出