前言:

  断断续续的接触了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】

php redis 的基本操作的更多相关文章

  1. java对redis的基本操作,ZZ

    java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html

  2. python下redis的基本操作:

    1. 基本操作: >>> import redis >>> print redis.__file__ /usr/local/lib/python2.7/dist-p ...

  3. Redis 的基本操作、Key的操作及命名规范

    Redis基本操作 查看数据的状态 pong redis 给我们返回 PONG,表示 redis 服务 运行正常 redis 默认用 使用 16 个 库 • Redis 默认使用 16 个库,从 0 ...

  4. java对redis的基本操作

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6

  5. java对redis的基本操作(转)

    本文转自:http://www.cnblogs.com/edisonfeng/p/3571870.html 2.主要类 1)功能类 package com.redis; import java.uti ...

  6. Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存

    源代码下载: http://download.csdn.net/detail/jiangtao_st/7623113 1.Maven配置 <dependency> <groupId& ...

  7. redis - java 基本操作

    import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; im ...

  8. Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/jiangtao_st/article/details/37699473 源码下载: http://d ...

  9. java 连接redis 以及基本操作

    一.首先下载安装redis 二.项目搭建 1.搭建一个maven 工程 2. 在pom.xml文件的dependencies节点下增加如下内容: <!-- resis --> <de ...

  10. java对redis的基本操作(初识)

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6

随机推荐

  1. 三、并行编程 - Task同步机制。TreadLocal类、Lock、Interlocked、Synchronization、ConcurrentQueue以及Barrier等

    在并行计算中,不可避免的会碰到多个任务共享变量,实例,集合.虽然task自带了两个方法:task.ContinueWith()和Task.Factory.ContinueWhenAll()来实现任务串 ...

  2. day2-作业及答案

    作业:第一组: 1.接收用户输入一个年份,判断是否是闰年(判断闰年的方法是该年能被4整除并且不能被100整除,或者是可以被400整除) 2.接收用户输入一组整数,输入负数时结束输入,输出这组数字的和: ...

  3. Springmvc常见问题

    问题一:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userCont ...

  4. [转]OpenGL 使用 PBO 高速复制屏幕图像到内存或者纹理中

    如果你想给游戏做个截图功能,或者想把屏幕图像弄成一个纹理,你就非常需要 PBO 了 通常情况下,你想把屏幕图像的像素数据读到内存需要用 glReadPixels 然后 pixels 参数传进去一块内存 ...

  5. OpenCV——KAZE、AKAZE特征检测、匹配与对象查找

      AKAZE是KAZE的加速版 特征点查找和绘制:把surf中的surf改成KAZE或AKAZE即可 #include <opencv2/opencv.hpp> #include < ...

  6. linux-如何快速替换IP

    导读 在Linux在做高可用的时候,经常会使用到虚拟IP.在windows上一个网卡可以配置两个IP,在Linux直接使用ip命令就可以添加了. 添加 ip address add 192.168.1 ...

  7. leetcode70—Climbing Stairs

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  8. ansible-playbook如何判断并中断执行

    - fail: msg="Bailing out. this play requires 'bar'"       when: bar is not defined 我的需求是当某 ...

  9. #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)

    ((GPIO_TypeDef *) GPIOA_BASE)表示将GPIOA_BASE强制转换为指针类型的结构体, #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) ...

  10. Java关键字(二)——native

    本篇博客我们将介绍Java中的一个关键字——native. native 关键字在 JDK 源码中很多类中都有,在 Object.java类中,其 getClass() 方法.hashCode()方法 ...