《ChinaUnix》
http://woaimaidong.blog.chinaunix.net
Redis是一种高级key-value数据库,互联网领域的地位很牛掰。它跟memcached类似,不过数据可以持久
化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交
和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器,这样说来
就更加牛掰了。
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);
也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
听起来是够牛的,但是我们怎么使用呢,怎么安装部署?怎么通过扩展访问呢?别急,接下来我们会分段
讲解,你可要认真听啊!
第一部分:redis的安装部署
1.1 安装
cd /home/bdkyr/tools
wget redis-2.8.14.tar.gz #地址我这里就不写了,避免博文被屏蔽,自己上网搜一下。
tar xzf redis-2.8.14.tar.gz
cd redis-2.8.14
make
make install
cp redis.conf /etc/
1.2 修改系统配置
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1 或执行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
说明:
0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2,表示内核允许分配超过所有物理内存和交换空间总和的内存
1.3 修改redis配置文件
vim /etc/redis.conf
#修改
daemonize yes #目的使进程在后台运行
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等待系统自己同步)
1.4 启动redis
redis-server /etc/redis.conf
#检查是否启动成功
ps -ef | grep redis
第二部分:php访问redis
我的测试环境为nginx-1.2.3.tar.gz+php-5.3.17+phpredis-2.2.4.tar.gz
2.1 phpredis扩展的安装
tar zxvf phpredis-2.2.4.tar.gz
cd phpredis-2.2.4
/usr/local/php-5.3.17/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.17/bin/php-config
make
make install
2.2 加载redis.so
#在php.ini 文件中,添加配置:
vim /usr/local/php-5.3.17/etc/php.ini #添加到文件最后面的位置
[redis]
extension=redis.so
2.3 重新启动php-fpm
killall php-fpm && /usr/local/php-5.3.17/sbin/php-fpm
2.4 编写redis_test.php 文件,进行访问测试
<?php
$redis = new Redis();
$redis->connect('127.0.0.1');
$redis->set('key', 'hello');
$redis->append('key', 'world');
echo $redis->get('key');
echo $redis->type('key');
echo $redis->echo('will close...');
echo "1111111111111111";
$redis->close();
?>
访问截图如下:
好了,整个过程到此结束,你学会怎么用了吗?如果还是没有学会,可以联系我---系统技术开源人---或者给我留言。
Redis是一种高级key-value数据库,互联网领域的地位很牛掰。它跟memcached类似,不过数据可以持久
化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交
和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器,这样说来
就更加牛掰了。
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);
也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
听起来是够牛的,但是我们怎么使用呢,怎么安装部署?怎么通过扩展访问呢?别急,接下来我们会分段
讲解,你可要认真听啊!
第一部分:redis的安装部署
1.1 安装
cd /home/bdkyr/tools
wget redis-2.8.14.tar.gz #地址我这里就不写了,避免博文被屏蔽,自己上网搜一下。
tar xzf redis-2.8.14.tar.gz
cd redis-2.8.14
make
make install
cp redis.conf /etc/
1.2 修改系统配置
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1 或执行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
说明:
0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2,表示内核允许分配超过所有物理内存和交换空间总和的内存
1.3 修改redis配置文件
vim /etc/redis.conf
#修改
daemonize yes #目的使进程在后台运行
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等待系统自己同步)
1.4 启动redis
redis-server /etc/redis.conf
#检查是否启动成功
ps -ef | grep redis
第二部分:php访问redis
我的测试环境为nginx-1.2.3.tar.gz+php-5.3.17+phpredis-2.2.4.tar.gz
2.1 phpredis扩展的安装
tar zxvf phpredis-2.2.4.tar.gz
cd phpredis-2.2.4
/usr/local/php-5.3.17/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.17/bin/php-config
make
make install
2.2 加载redis.so
#在php.ini 文件中,添加配置:
vim /usr/local/php-5.3.17/etc/php.ini #添加到文件最后面的位置
[redis]
extension=redis.so
2.3 重新启动php-fpm
killall php-fpm && /usr/local/php-5.3.17/sbin/php-fpm
2.4 编写redis_test.php 文件,进行访问测试
<?php
$redis = new Redis();
$redis->connect('127.0.0.1');
$redis->set('key', 'hello');
$redis->append('key', 'world');
echo $redis->get('key');
echo $redis->type('key');
echo $redis->echo('will close...');
echo "1111111111111111";
$redis->close();
?>
访问截图如下:
好了,整个过程到此结束,你学会怎么用了吗?如果还是没有学会,可以联系我---系统技术开源人---或者给我留言。