redis是用c编写的开源内存型键值数据库,其会周期性将内存中数据同步到硬盘达到持久化目的。memcachedb也是开源内存型键值数据库,速度比redis快,但不支持硬盘存储,且数据类型没有redis丰富。内存型数据库可用于缓存、消息队列等非持久性短暂存储数据或实时性为主,频繁插入删除操作的应用。redis自带的一个简易命令接口redis-cli,可使用开源可视化的redis客户端工具RDM。
// 启动指定配置文件的redis服务
src/redis-server ../redis_6379.conf
// 开启客户端连接redis服务
src/redis-cli
// 客户端关闭redis服务实例
shutdown
// 使redis服务实例随着linux的启动而开机自启
vi /etc/rc.local
添加/export/servers/redis-3.2.3/src/redis-server ../redis_port.conf
redis服务启动时默认会加载安装根目录下的redis.conf文件来完成redis服务实例的相关配置,通常一个reids服务实例对应一个配置文件,若要在同一台服务器上启动多个redis服务实例,就必须在安装根目录下创建多个配置文件。由于每个redis服务实例都必须对应唯一的端口号,通常将对应的配置文件命名为redis_port.conf。
daemonize:配置服务是否为后台运行,默认no非后台运行,如需后台运行改为yes。
pidfile:配置pid文件地址,默认/var/run/redis_6379.pid,其存储了当前服务的进程号,同一服务器上多个服务必须创建对应的多个pid文件,文件名以端口号区分。
port:配置服务的端口号,默认6379,同一服务器上启动多个服务必须在对应配置文件内指定不同端口号。
bind:配置服务只接受来自指定ip的请求,默认127.0.0.1只接收本机请求。
timeout:配置客户端连接超时时间,单位秒,若客户端在规定时间内没发请求会关闭该连接,默认0无限制。
loglevel:配置数据库日志级别,共四个级别,默认notice正常记录,debug记录全部信息,varbose仅记录有用信息,waring记录非常重要的信息。
logfile:配置数据库日志文件地址,stdout标准输出到终端显示,后台模式输出到/dev/null,null是一串口设备的文件,/export/Logs/redis/redis_6379.log输出到文件,前提必须先建立此目录及文件。
databases:配置可用数据库个数,默认16。redis没有表概念,其数据库用一个从0开始的整数索引来标识,使用select dbid来指定数据库,默认0数据库,不同数据库内key可重复。flushdb清除当前数据库内容,flushall清除当前服务所有数据库内容,dbsize返回当前数据库内k个数。
save:配置内存数据与硬盘数据库同步频率,如save 900 1,表示900秒内有一个及以上的key发生变化,就将内存数据同步到硬盘。redis有rdb和aof两种实现内存数据持久化的方式,其中rdb速度快,但会缺失数据;aof速度慢,但会完全恢复。
rdbcompression:配置内存数据同步到rdb时是否压缩数据,默认yes。
dbfilename:配置rdb数据库文件名,默认为dump.rdb,仅指出文件名。
dir:配置rdb数据库文件存放目录,默认redis安装根目录。只能指定目录,不能指定rdb文件名。
slaveof:配置当前服务的主redis服务,redis的多个服务可实现主从同步,若当前服务为从库,要在此指定主库的ip和端口,如slaveof ip port,当从库开启时,会自动从主库同步数据。
masterauth:配置从库访问主库的密码,若当前服务为从库,且要同步的主库设置了密码,要在此指定连接到主库的密码。
appendonly:配置是否开启aof持久化功能,默认no,若开启会创建xxx.aof文件,其会记录服务的每一次写操作。
appendfilename:配置aof文件的名称,默认为appendonly.aof。
appendfsync:配置服务对aof文件的同步频率,always表示一有写操作就同步,everysec表示每秒进行一次同步。
requirepass:配置客户端连接到服务的密码,默认注释掉不设置密码,此时redis进入保护模式,除了本地客户端外,远程客户端均无法连接服务。在此设置密码后可实现远程连接,但远程登录后必须执行auth password命令输入密码才可操作。
maxclients:配置服务的最大客户端连接数,默认注释掉,不加限制。
maxmemory:配置服务的最大内存,默认注释掉,不加限制。