Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Map)、 列表(list)、集合(sets) 和 有序集合(sorted sets)等类型。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Linux源码安装:
1、安装
cd /usr/local/src/lamp &&
tar -zxvf redis-3.2.1.tar.gz &&
cd /usr/local/src/lamp/redis-3.2.1 &&
mkdir -p /usr/local/redis &&
make PREFIX=/usr/local/redis install
2、
在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:
redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。或者通过telnet进行纯文本协议操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
3、将redis做成一个服务
必须将其复制到/etc/rc.d/init.d的目录下,将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis:
cp /usr/local/src/lamp/redis-3.2.1/utils/redis_init_script /etc/rc.d/init.d/redis
#如果这时添加注册服务:
chkconfig --add redis
#将报以下错误:
redis服务不支持chkconfig
#为此,我们需要更改redis脚本。
vim /etc/rc.d/init.d/redis
#!/bin/sh
#chkconfig: 2345 80 90 #添加这一行
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
4、将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf
mkdir /etc/redis &&
cp /usr/local/src/lamp/redis-3.2.1/redis.conf /etc/redis/6379.conf &&
cp /usr/local/src/lamp/redis-3.2.1/redis.conf /etc/redis.conf &&
cp /usr/local/src/lamp/redis-3.2.1/redis.conf /usr/local/redis/bin/redis.conf
5、redis配置密码,尤为重要
去掉行前的注释,并修改密码为所需的密码,保存文件:
vim /etc/redis.conf
#requirepass foobared
requirepass mypasswd
6、注册redis服务:
chkconfig --add redis &&
chkconfig redis on
将Redis的命令所在目录添加到系统参数PATH中
vim /etc/profile
在最后行追加:
export PATH="$PATH:/usr/local/redis/bin"
然后马上应用这个文件:
./etc/profile
或者
source /etc/profile
这样就可以直接调用redis-cli的命令了,如下所示:
/usr/local/redis/bin/redis-cli
出现:Could not connect to Redis at 127.0.0.1:6379: Connection refused
解决方法:
vim /etc/redis.conf打开文件找到daemonize no 为 daemonize yes这样就可以默认启动就后台运行
重启服务:
ps -aux | grep redis
kill redis 进程
/usr/local/redis/bin/redis-server /etc/redis.conf &
/usr/local/redis/bin/redis-cli
redis 127.0.0.1:6379> auth mypasswd
OK
redis 127.0.0.1:6379>set name gps
redis.conf配置参数说明:
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间(秒级),第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
slaveof :主从配置,在redis-slave上配置master的ip port,即可
参考资料