欢迎阅读!

潇湘夜雨

当前位置: 主页 > 数据库 >

redis非关系数据库入门

时间:2016-09-11 11:52来源: 作者:liangzh 点击:
简介: Redis 是 一个高性能的key-value数据库。 redis 的出现,很大程度补偿了 memcached 这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,E
简介:Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

性能测试结果:

SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置:Linux 2.6Xeon X3320
2.5Ghz
.

一、安装
1、安装redis
[root@node3 ~]# wget -c -t 0 http://download.redis.io/releases/redis-2.8.19.tar.gz
[root@node3 ~]#tar -zxvf redis-2.8.19.tar.gz 
[root@node3 ~]# cd redis-2.8.19
[root@node3 ~]#make #直接编译
[root@node3 ~]# cp -r -c src/ /usr/local/redis #复制编译后的应用程序到安装路径
主要程序:
Redis-benchmark      压力测试工具
Redis-check-aof      检查redis持久化命令文件的完整性
Redis-check-dump     检查redis持久化数据文件的完整性
Redis-cli            redis在linux上的客户端
Redis-sentinel       redis-sentinel是集群管理工具,主要负责主从切换。
Redis-server         Redis服务器的daemon启动程序
[root@node3 ~]#  cp redis.conf /usr/local/redis/ #复制配置文件
 
2、安装php的redis扩展
[root@node3 ~]#wget -c -t 0 https://github.com/owlient/phpredis/archive/master.zip
[root@node3 ~]#mkdir master
[root@node3 ~]#unzip master.zip -d master
[root@node3 ~]#cd master/phpredis-master/
[root@node3 ~]#/usr/local/php/bin/phpize #phpize程序在php安装路径下,根据实际路径运行程序。
[root@node3 ~]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@node3 ~]#make
[root@node3 ~]#make install
[root@node3 ~]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ #查看是否有redis.so模块
[root@node3 ~]#vim /etc/php.ini #修改php的配置文件,如果没有“extension=redis.so”,就加上这一行
[root@node3 ~]# service php-fpm restart
 
3、是否安装成功
访问phpinfo的那个界面,查看是否有redis模块
 
二、redis缓存测试
1.启动
[root@node3 ~]# /usr/local/redis/redis-server & 启动redis服务
[root@node3 ~]# netstat -tnlp | grep redis #查看端口
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      62379/redis-server  
tcp        0      0 :::6379                     :::*                        LISTEN      62379/redis-server  
 
2.编写php脚本测试
[root@node3 html]# vim redis.php 
 
<?php
        $redis = new Redis();
        $redis->connect('127.0.0.1',6379) or die ("could net connect redis server");
        $query = "select * from person limit 8";
        //为了简单一点,这里就读取了8条数据
        for ($key = 1; $key < 9; $key++)
        {
                if (!$redis->get($key))
                {
                        $connect = mysql_connect('172.18.109.233','root','123456');
                        mysql_select_db(slave);
                        $result = mysql_query($query);
                        //如果没有找到$key,就将该查询sql的结果缓存到redis
                        while ($row = mysql_fetch_assoc($result))
                        {
                                $redis->set($row['id'],$row['name']);
                        }
<?php   
        $redis = new Redis();
        $redis->connect('127.0.0.1',6379) or die ("could net connect redis server");
        $query = "select * from person limit 8";
        //为了简单一点,这里就读取了8条数据
        for ($key = 1; $key < 9; $key++)
        {
                if (!$redis->get($key))
                {
                        $connect = mysql_connect('172.18.109.233','root','123456');
                        mysql_select_db(slave);
                        $result = mysql_query($query);
                        //如果没有找到$key,就将该查询sql的结果缓存到redis
                        while ($row = mysql_fetch_assoc($result))
                        {
                                $redis->set($row['id'],$row['name']);
                        }
                        $myserver = 'mysql';
                        break;
                }
                else
                {
                        $myserver = "redis";
                        $data[$key] = $redis->get($key);
                }
        }
 
        echo $myserver;
        echo "<br>";
        for ($key = 1; $key < 9; $key++)
        {
                echo "number is <b><font color=#FF0000>$key</font></b>";
 
                echo "<br>";
 
                echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
 
                echo "<br>";
        }
3.网页访问测试
http://172.18.109.239/redis.php
第一次访问结果:
mysql
number is 1
name is 
number is 2
name is 
number is 3
name is 
number is 4
name is 
number is 5
name is 
number is 6
name is 
number is 7
name is 
number is 8
name is 
刷新页面:
redis
number is 1
name is lzh
number is 2
name is proxy
number is 3
name is Dale
number is 4
name is Edison
number is 5
name is xie
number is 6
name is team
number is 7
name is node3
number is 8
name is slave2
通过测试发现第一次访问redis并没有缓存,刷新后就有了缓存。
(责任编辑:liangzh)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容