设为首页 收藏本站
查看: 553|回复: 0

[经验分享] how to use redis

[复制链接]

尚未签到

发表于 2016-12-18 07:50:11 | 显示全部楼层 |阅读模式
  一、Redis install on windows

Download URL:
http://code.google.com/p/servicestack/wiki/RedisWindowsDownload
or http://pan.baidu.com/netdisk/singlepublic?fid=305055_2334233736

There are some files as below after unzip it;
    redis-server.exe:服务程序
    redis-check-dump.exe:本地数据库检查
    redis-check-aof.exe:更新日志检查
    redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询

运行需要redis的配置文件redis.conf,如没有指定,则使用默认设置

开始运行redis:
    解压目录:\>redis-server.exe redis.conf

运行一个客户端连接:
    解压目录:\>redis-cli.exe -h 127.0.0.1 -p 6379

测试一下:
    $ ./redis-cli set mykey somevalue
    OK
    $ ./redis-cli get mykey
    somevalue

测试一下性能:
    D:\redis>redis-benchmark.exe -h 127.0.0.1 -p 6379 -n 100000 -c 50

至此安装完毕,在客户端里面可以运行各种测试

一个redis的管理工具:phpRedisAdmin(需要安装php的redis扩展)
https://github.com/ErikDubbelboer/phpRedisAdmin


二、安装PHP的redis扩展

在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了.
这里提供php5.3版本的redis的php扩展压缩包(里面有个dll):https://github.com/nicolasff/phpredis/downloads
解压后把dll放到php的ext目录下,打开php.ini,增加一行:
   
extension=php_redis.dll

然后,重启apache或者nginx或者IIS就可以了.


三、PHP操作redis的简单测试

确认我们已经做好了以下几个步骤:

1. 我们已经安装了redis,并且用`redis-server.exe redis.conf`命令启动了redis服务器
2. 我们已经下载了php_redis.dll拷贝到了php的ext目录,并且在php.ini中添加了一行:”extension=php_redis.dll",然后重启了WEB服务器

运行下面的代码:

<?php
    echo 'phpredis sample:<br />';

    error_reporting(E_ALL);
    ini_set('display_errors','ON');

    //已经启用了php-redis扩展,因此这里可以直接使用Redis对象了
    $redis = new Redis();
    //进行连接
    $redis->connect('127.0.0.1',6379);

    //这里开始使用redis的功能,就是设置一下
    $redis->set('name1', 'www.51projob.com');
    $redis->set('name2', 'www.crazyant.com');

    echo "通过get方法获取到键的值:<br>"
        .$redis->get('name1')."<br>"
        .$redis->get('name2');
?>

phpredis, 其实获得了$redis对象,你就可以任意的执行所有的redis命令,这些包括官方redis手册的所有命令:官方手册

四、redis+mysql实现缓存写入的简单尝试
r
edis适用于缓存的,这里可以类似内存与磁盘的写回关系:以下是一个投票程序对redis的测试,当投票数到了50的时候,就可以将其写入到mysql:

<?php

    //获取投票的信息的ID
    $aid = isset($_GET['aid']) ? ereg_replace("[^0-9]", "", $_GET['aid']) : 0;

    //当前投票的数字,指的是在redis中的数据
    $this_click_num = 0;

    if($aid>2){
        //设定写回的投票数的最大值,到了此值就写回mysql
        $update_till_num = 50;
       
        //创建redis对象
        $r = new Redis();
        $r->connect('127.0.0.1',6379);
        //得到现在是第几个数据了
        $this_click_num = $r->get('count_xin_newgame:'.$aid);
        //点击数加1
        $r->set('count_xin_newgame:'.$aid,$this_click_num+1);
        if($this_click_num>=$update_till_num)
        {
            //如果点击数超过了设定数,那么就把数据写到mysql
            if($this_click_num>$update_till_num)
            require_once(dirname(__FILE__)."/db.php");
            //更新数据库
            $db->ExecuteNoneQuery(
                "UPDATE `addonnewgame`
                    SET `game_num` = game_num + '{$update_till_num}'
                    WHERE `dede_addonnewgame`.`aid` ={$aid};"
            );
            //重置投票数目为0
            $r->set('count_xin_newgame:'.$aid,0);
        }
        $r->setTimeout('count_xin_newgame:'.$aid,7*24*60*60);
        exit($this_click_num);
    }
?>

这里没有找到php-redis扩展的文档,官方的文档是一个php_redis.php的头文件, https://github.com/ukko/phpredis-phpdoc

我们只要把该php下载下来放到自己的项目里面,那么写代码的时候,可以直接看到注释了, 可以这样来设置一下eclipse:

Setup in IDE
    Right click your project -> “Properties”
    Select the “PHP Include Path” category
    Click “Add Folder…”
    Select your checkout of phpredis-phpdoc
    Click “Open”
    Click “OK”

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315709-1-1.html 上篇帖子: redis学习笔记之事务 下篇帖子: redis.conf配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表