• php redis 的基本操作


    前言:

      断断续续的接触了redis的使用。但是也就简单的记住了几个set、get方法,用的还是太少了吧。所以来做个笔记,记录下一些常用的命令。

    内容:

    首先是php连接redis。

    $redis = new Redis(); //实例化个redis对象,要是这里报错了通常是php没有装redis扩展,自己百度下安装扩展(之后整理一篇博文好了)
    $redis->connent($host,$port); //连接redis,参数分别是地址和端口,和连接mysql差不多。(毕竟都是数据库,连接过程都一样)
    $redis->auth($pwd); //检验密码,没有密码就不用进行这一步
    $redis->select($db_num);  //选择数据库,默认是0。个数再redis配置文件里面配置。

    接下来就是些数据库的操作了

    redis数据库是内存数据库,将数据存储再内存中,这样子读写就相当的快,节省了磁盘的I/O操作。当然redis也可以将数据保存在磁盘,等重新开机后再次读入,避免丢失数据(怎么实现的,之后被百度下,会了再来补充)。

    redis和memcache都被用来进行缓存处理,两者的共性是都将数据存储在内存中,所以读写快。redis读110000/s,写81000/s(没记错的话)。两者最大的区别在于,redis支持更多的数据格式存储,还能进行些数据库操作。而memcache只能以键值对的形式进行存储,且只有存取操作。

    redis允许的存储格式有五种。string、list、set、zset、hash。

    接下来一一的记录下相应的常用操作。

    • string
    $redis->set($key,$val);
    $redis->get($key);
    $redis->strlen('key');//获取当前key的长度
    $redis->append('key','string');//把string追加到key现有的value中[追加后的个数]
    $redis->incr('key');//自增1,如不存在key,赋值为1(只对整数有效,存储以10进制64位,redis中为str)
    $redis->incrby('key',$num);//自增$num,不存在为赋值,值需为整数[new_num | false]
    $redis->decr('key');//自减1,[new_num | false]
    $redis->decrby('key',$num);//自减$num,[ new_num | false]
    $redis->setex('key',10,'value');//key=value,有效期为10秒
    $redis->mset($arr);//设置一个或多个键值
    $redis->mget($arr);//(string|arr),返回所查询键的值
    $redis->del($key_arr);//(string|arr)删除key,支持数组批量删除【返回删除个数】
    $redis->delete($key_str,$key2,$key3);//删除keys,[del_num]
    $redis->getset('old_key','new_value');//先获得key的值,然后重新赋值,[old_value | false]
    $redis->setnx('key','value');//key=value,key存在返回false[|true]
    •  set
    • zset
    • list
    • hash

    最后还有一些对数据库的操作

    $redis->dbSize();//返回当前库中的key的个数
    $redis->flushAll();//清空整个redis[总true]
    $redis->flushDB();//清空当前redis库[总true]
    $redis->save();//同步??把数据存储到磁盘-dump.rdb[true]
    $redis->bgsave();//异步??把数据存储到磁盘-dump.rdb[true]
    $redis->info();//查询当前redis的状态 [verson:2.4.5....]
    $redis->lastSave();//上次存储时间key的时间[timestamp]
    
    $redis->watch('key','keyn');//监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断 [true]
    $redis->unwatch('key','keyn');//取消监视一个(或多个) key [true]
    $redis->multi(Redis::MULTI);//开启事务,事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令在一个原子时间内执行。
    $redis->multi(Redis::PIPELINE);//开启管道,事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令在一个原子时间内执行。
    $redis->exec();//执行所有事务块内的命令,;【事务块内所有命令的返回值,按命令执行的先后顺序排列,当操作被打断时,返回空值 false】
  • 相关阅读:
    oracle 创建数据库 创建表空间 创建用户
    Oracle 10G/11G 导入 导出
    winform与IE交互
    asihttprequest简单异步
    架构师的故事
    duobangotinySDP,rfc 2327
    duobangotinySAK,20121213
    doubango框架阅读计划
    并读<自己动手做操作系统>及<汇编语言2>
    SBJSON在xcode的应用中需要注意的
  • 原文地址:https://www.cnblogs.com/lsrd/p/10241152.html
Copyright © 2020-2023  润新知