您的位置:首页 > 数据库 > Redis

【学习笔记】Redis及PHPRedis安装

2016-03-26 17:03 513 查看

Redis

Redis是Remote Dictionary Server的缩写,Redis是一个开源、基于C语言、基于内存亦可持久化的高性能NoSQL的键值对数据库。

每秒可以读写10万个键值。

Redis和MemCache比较

Redis不仅仅支持简单的k-v类型的数据,同时还提供了list、set、zset、hash等数据结构的存储。

Redis支持master-slave(主-从)模式应用。

Redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载继续使用。

Redis单个value的最大限制是1GB,MemCache只能保存1MB的数据。

适用场景

取最新N个数据的操作。

排行榜应用,取TOP N操作。

需要精确设定过期时间的应用。

计数器应用。

Uniq操作,获取某段时间所有数据排重值。

实时系统,反垃圾系统。

Pub/Sub构建实时消息系统。

构建队列系统。

缓存。

安装环境

CentOS6.5

PHPStudy

PHP5.5

Apache

Redis安装

wget http://download.redis.io/releases/redis-3.0.7.tar.gz tar -zxvf redis-3.0.7.tar.gz
cd redis-3.0.7
make


编译成功:



cd src




创建Redis运行目录

mkdir /usr/local/redis
cp redis-cli redis-server /usr/local/redis
cd ..
cp redis.conf /usr/local/redis
cd /usr/local/redis




数据类型

Key

除了‘\n’和‘空格’不能作为名字的组合内容外,其他内容都可以作为Key的名字部分。长度不做要求。

String

String是Redis最基本的类型。

Redis的String可以包含任何数据(包括二进制——JPG图片或者序列化的对象)。

单个value值最大上限是1GB。

如果只用String类型,Redis就可以被看作加上持久化特性的MemCache。

List链表

List其实就是一个双向链表。

通过push、pop操作从链表的头部或尾部添加、删除元素。这使得List既可以用作栈,也可以用做队列。

Set(集合)

Redis的Set是String类型的无序集合。

Set元素最大可以包含232-1个元素。

Sort Set(排序集合)

排序集合中的每个元素都是值、权的组合。

Hash

特别适合用于存储对象,可以占用更少的内存,并且方便存取整个对象。

简单试用

此篇仅用于安装、试用,具体场景、函数,不做详细说明,后续再更新实例。

Redis命令链接

PHPRedis源码链接,有兴趣可以看看

./redis-server redis.conf




./redis-cli




持久化功能

Redis为了内部数据的安全考虑,会把本身的数据以文件的形式保存到磁盘一份,在服务器重启之后会自动把磁盘上的数据恢复到内存(Redis)里。

数据保存到磁盘的过程就称为“持久化”效果

Snap Shotting快照持久化

该持久化默认开启,会一次性把Redis中所有的数据保存一份存储到磁盘里,如果数据非常多(10-20GB)就不适合频繁的使用该持久化操作。

手动执行快照持久化(本机可以省略ip、端口):

./redis-cli -h(IP) -p(端口) bgsave


Append Only File(AOF持久化)

本质:把用户执行的每个“写”指令(添加、修改、删除)都备份到文件中,还原数据的时候就是执行具体的指令。

开启AOF持久化(会清空Redis内的数据)

AOF备份文件优化指令:

./redis-cli bgrewriteaof


常用配置项

daemonize{yse|no}:是否后台启动。

pidfile:配置多个pid地址,默认为/var/run/redis.pid。

port:监听端口,默认为6379。

bind:绑定ip,设置后只接受来自该ip的请求。

timeout:设置客户端连接时的超时时间,单位为秒。

loglevel:日志等级;debug、verbose、notice、warning四个等级。

logfile:配置log文件地址。

databases:Redis数据库数量(最多为16个)。

save x y:x秒内有y个key的数据被修改就执行快照持久化操作。

rdbcompression:进行镜像备份时,是否进行压缩。

dbfilename:快照持久化备份文件名称。

dir:快照持久化备份文件路径。

appendonly{yes|no}:AOF持久化开启。

appendfilename:AOF持久化备份文件名称。

appendsync:AOF持久化备份频率。

slaveof:自身为从服务器,填写主服务器的IP和端口号。

masterauth:主数据库连接需要的密码验证。

requirepass:设置登录时需要使用的密码。

maxclients:限制并发连接的客户数量。

maxmemory:设置Redis能够使用的最大内存,单位为byte。

slave-read-only{yes|no}:从服务器是否可读。

activerehashing:重新hash。

PHP安装PHPRedis扩展

PHPRedis下载链接

unzip phpredis-develop.zip
cd phpredis-develop
/phpstudy/server/php/bin/phpize




./configure --with-php-config=/phpstudy/server/php/bin/php-config




make
make install




vim /phpstudy/server/php/etc/php.ini


添加扩展:



重启Apache!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis NoSQL 数据库