zoukankan      html  css  js  c++  java
  • 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】
  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/lsrd/p/10241152.html
Copyright © 2011-2022 走看看