博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP操作redis
阅读量:5241 次
发布时间:2019-06-14

本文共 12057 字,大约阅读时间需要 40 分钟。

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis支持的数据类型有 Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);

redis版本是Redis 2.6.12 系统是在Windows+Apache2.4+php5.6

连接:

1     //实例化redis2     $redis = new Redis();3     //连接4     $redis->connect('127.0.0.1', 6379);5     //检测是否连接成功6     echo "Server is running: " . $redis->ping();7     // 输出结果 Server is running: +PONG

Strng(字符串):

  // 设置一个字符串的值    $redis->set('cat', 111);    //获取一个字符串的值    echo $redis->get('cat'); // 111    // 重复set    $redis->set('cat', 222);    echo $redis->get('cat'); // 222

List(列表):

1     //列表 2     //存储数据到列表中 3     $redis->lpush('list', 'html'); 4     $redis->lpush('list', 'css'); 5     $redis->lpush('list', 'php'); 6  7     //获取列表中所有的值 8     $list = $redis->lrange('list', 0, -1); 9     print_r($list);echo '
'; 10 11 //从右侧加入一个12 $redis->rpush('list', 'mysql');13 $list = $redis->lrange('list', 0, -1);14 print_r($list);echo '
';15 16 //从左侧弹出一个17 $redis->lpop('list');18 $list = $redis->lrange('list', 0, -1);19 print_r($list);echo '
';20 21 //从右侧弹出一个22 $redis->rpop('list');23 $list = $redis->lrange('list', 0, -1);24 print_r($list);echo '
';25 26 // 结果27 // Array ( [0] => php [1] => css [2] => html )28 // Array ( [0] => php [1] => css [2] => html [3] => mysql )29 // Array ( [0] => css [1] => html [2] => mysql )30 // Array ( [0] => css [1] => html )
1 
connect('127.0.0.1', 6379); 6 //列表 7 //存储数据到列表中 8 $redis->lpush('list', 'html'); 9 $redis->lpush('list', 'css');10 $redis->lpush('list', 'php');11 $redis->lpush('list', 'mysql');12 $redis->lpush('list', 'javascript');13 $redis->lpush('list', 'ajax');14 15 //获取列表中所有的值16 $list = $redis->lrange('list', 0, -1);17 print_r($list);echo '
'; 18 19 //获取列表的长度20 $length = $redis->lsize('list');21 echo $length;echo '
';22 23 //返回列表key中index位置的值24 echo $redis->lget('list', 2);echo '
';25 echo $redis->lindex('list', 2);echo '
';26 27 //设置列表中index位置的值28 echo $redis->lset('list', 2, 'linux');echo '
';29 $list = $redis->lrange('list', 0, -1);30 print_r($list);echo '
';31 32 //返回key中从start到end位置间的元素33 $list = $redis->lrange('list', 0, 2);34 print_r($list);echo '
';35 36 $list = $redis->lgetrange('list', 0, 2);37 print_r($list);echo '
';38 39 //截取链表中start到end的元素     //截取列表后列表发生变化,列表保留截取的元素,其余的删除40 $list = $redis->ltrim('list', 0, 1);41 print_r($list);echo '
';42 43 $list = $redis->lrange('list', 0, -1);44 print_r($list);echo '
';45 // 结果46 // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css [5] => html )47 // 648 // mysql49 // mysql50 // 151 // Array ( [0] => ajax [1] => javascript [2] => linux [3] => php [4] => css [5] => html )52 // Array ( [0] => ajax [1] => javascript [2] => linux )53 // Array ( [0] => ajax [1] => javascript [2] => linux )54 // 155 // Array ( [0] => ajax [1] => javascript )
1 
connect('127.0.0.1', 6379); 6 //列表 7 //存储数据到列表中 8 $redis->lpush('list', 'html'); 9 $redis->lpush('list', 'html');10 $redis->lpush('list', 'html');11 $redis->lpush('list', 'css');12 $redis->lpush('list', 'php');13 $redis->lpush('list', 'mysql');14 $redis->lpush('list', 'javascript');15 $redis->lpush('list', 'html');16 $redis->lpush('list', 'html');17 $redis->lpush('list', 'html');18 $redis->lpush('list', 'ajax');19 20 //获取列表中所有的值21 $list = $redis->lrange('list', 0, -1);22 print_r($list);echo '
'; 23 24 //删除列表中count个值为value的元素25 //从左向右删26 $redis->lrem('list', 'html', 2);27 $list = $redis->lrange('list', 0, -1);28 print_r($list);echo '
'; 29 30 //从右向左删31 $redis->lrem('list', 'html', -2);32 $list = $redis->lrange('list', 0, -1);33 print_r($list);echo '
'; 34 35 //删除所有36 $redis->lrem('list', 'html', 0);37 $list = $redis->lrange('list', 0, -1);38 print_r($list);echo '
';39 40 // 结果41 // Array ( [0] => ajax [1] => html [2] => html [3] => html [4] => javascript [5] => mysql [6] => php [7] => css [8] => html [9] => html [10] => html )42 // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html [7] => html [8] => html )43 // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html )44 // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css )

 Hash(字典):

1 
connect('127.0.0.1', 6379); 6 //字典 7 //给hash表中某个key设置value 8 //如果没有则设置成功,返回1,如果存在会替换原有的值,返回0,失败返回0 9 echo $redis->hset('hash', 'cat', 'cat');echo '
';10 echo $redis->hset('hash', 'cat', 'cat');echo '
';11 echo $redis->hset('hash', 'cat', 'cat1');echo '
';12 echo $redis->hset('hash', 'dog', 'dog');echo '
';13 echo $redis->hset('hash', 'bird', 'bird');echo '
';14 echo $redis->hset('hash', 'monkey', 'monkey');echo '
';15 //获取hash中某个key的值16 echo $redis->hget('hash', 'cat');echo '
';17 18 //获取hash中所有的keys19 $arr = $redis->hkeys('hash');20 print_r($arr);echo '
';21 22 //获取hash中所有的值 顺序是随机的23 $arr = $redis->hvals('hash');24 print_r($arr);echo '
';25 26 //获取一个hash中所有的key和value 顺序是随机的27 $arr = $redis->hgetall('hash');28 print_r($arr);echo '
';29 30 //获取hash中key的数量31 echo $redis->hlen('hash');echo '
';32 33 //删除hash中一个key 如果表不存在或key不存在则返回false34 echo $redis->hdel('hash', 'dog');echo '
';35 var_dump($redis->hdel('hash', 'rabbit'));echo '
';36 37 // 结果38 // 139 // 040 // 041 // 142 // 143 // 144 // cat145 // Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )46 // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )47 // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )48 // 449 // 150 // int(0)
1 
connect('127.0.0.1', 6379); 6 //字典 7 //批量设置多个key的值 8 $arr = [1=>1, 2=>2, 3=>3, 4=>4, 5=>5]; 9 $redis->hmset('hash', $arr);10 print_r($redis->hgetall('hash'));echo '
';11 12 // 批量获得额多个key的值13 $arr = [1, 2, 3, 5];14 $hash = $redis->hmget('hash', $arr);15 print_r($hash);echo '
';16 17 //检测hash中某个key知否存在18 echo $redis->hexists('hash', '1');echo '
';19 var_dump($redis->hexists('hash', 'cat'));echo '
';20 21 print_r($redis->hgetall('hash'));echo '
';22 23 //给hash表中key增加一个整数值24 $redis->hincrby('hash', '1', 1);25 print_r($redis->hgetall('hash'));echo '
';26 27 //给hash中的某个key增加一个浮点值28 $redis->hincrbyfloat('hash', 2, 1.3);29 print_r($redis->hgetall('hash'));echo '
';30 31 //结果32 // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )33 // Array ( [1] => 1 [2] => 2 [3] => 3 [5] => 5 )34 // 135 // bool(false)36 // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )37 // Array ( [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )38 // Array ( [1] => 2 [2] => 3.3 [3] => 3 [4] => 4 [5] => 5 )

 Set(集合):

1 
connect('127.0.0.1', 6379); 6 //集合 7 // 添加一个元素 8 echo $redis->sadd('set', 'cat');echo '
'; 9 echo $redis->sadd('set', 'cat');echo '
';10 echo $redis->sadd('set', 'dog');echo '
';11 echo $redis->sadd('set', 'rabbit');echo '
';12 echo $redis->sadd('set', 'bear');echo '
';13 echo $redis->sadd('set', 'horse');echo '
';14 15 // 查看集合中所有的元素16 $set = $redis->smembers('set');17 print_r($set);echo '
';18 19 //删除集合中的value20 echo $redis->srem('set', 'cat');echo '
';21 var_dump($redis->srem('set', 'bird'));echo '
';22 23 $set = $redis->smembers('set');24 print_r($set);echo '
';25 26 //判断元素是否是set的成员27 var_dump($redis->sismember('set', 'dog'));echo '
';28 var_dump($redis->sismember('set', 'bird'));echo '
';29 30 //查看集合中成员的数量31 echo $redis->scard('set');echo '
';32 33 //移除并返回集合中的一个随机元素(返回被移除的元素)34 echo $redis->spop('set');echo '
';35 36 print_r($redis->smembers('set'));echo '
';37 38 // 结果39 // 140 // 041 // 142 // 143 // 144 // 145 // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )46 // 147 // int(0)48 // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )49 // bool(true)50 // bool(false)51 // 452 // bear53 // Array ( [0] => dog [1] => rabbit [2] => horse )
1 
connect('127.0.0.1', 6379); 6 //集合 7 $redis->sadd('set', 'horse'); 8 $redis->sadd('set', 'cat'); 9 $redis->sadd('set', 'dog');10 $redis->sadd('set', 'bird');11 $redis->sadd('set2', 'fish');12 $redis->sadd('set2', 'dog');13 $redis->sadd('set2', 'bird');14 15 print_r($redis->smembers('set'));echo '
';16 print_r($redis->smembers('set2'));echo '
';17 18 //返回集合的交集19 print_r($redis->sinter('set', 'set2'));echo '
';20 21 //执行交集操作 并结果放到一个集合中22 $redis->sinterstore('output', 'set', 'set2');23 print_r($redis->smembers('output'));echo '
';24 25 //返回集合的并集26 print_r($redis->sunion('set', 'set2'));echo '
';27 28 //执行并集操作 并结果放到一个集合中29 $redis->sunionstore('output', 'set', 'set2');30 print_r($redis->smembers('output'));echo '
';31 32 //返回集合的差集33 print_r($redis->sdiff('set', 'set2'));echo '
';34 35 //执行差集操作 并结果放到一个集合中36 $redis->sdiffstore('output', 'set', 'set2');37 print_r($redis->smembers('output'));echo '
';38 39 // 结果40 // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )41 // Array ( [0] => bird [1] => dog [2] => fish )42 // Array ( [0] => bird [1] => dog )43 // Array ( [0] => dog [1] => bird )44 // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )45 // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )46 // Array ( [0] => horse [1] => cat )47 // Array ( [0] => horse [1] => cat )

Sorted Set(有序集合):

1 
connect('127.0.0.1', 6379); 6 //有序集合 7 //添加元素 8 echo $redis->zadd('set', 1, 'cat');echo '
'; 9 echo $redis->zadd('set', 2, 'dog');echo '
';10 echo $redis->zadd('set', 3, 'fish');echo '
';11 echo $redis->zadd('set', 4, 'dog');echo '
';12 echo $redis->zadd('set', 4, 'bird');echo '
';13 14 //返回集合中的所有元素15 print_r($redis->zrange('set', 0, -1));echo '
';16 print_r($redis->zrange('set', 0, -1, true));echo '
';17 18 //返回元素的score值19 echo $redis->zscore('set', 'dog');echo '
';20 21 //返回存储的个数22 echo $redis->zcard('set');echo '
';23 24 //删除指定成员25 $redis->zrem('set', 'cat');26 print_r($redis->zrange('set', 0, -1));echo '
';27 28 //返回集合中介于min和max之间的值的个数29 print_r($redis->zcount('set', 3, 5));echo '
';30 31 //返回有序集合中score介于min和max之间的值32 print_r($redis->zrangebyscore('set', 3, 5));echo '
';33 print_r($redis->zrangebyscore('set', 3, 5, ['withscores'=>true]));echo '
';34 35 //返回集合中指定区间内所有的值36 print_r($redis->zrevrange('set', 1, 2));echo '
';37 print_r($redis->zrevrange('set', 1, 2, true));echo '
';38 39 40 //有序集合中指定值的socre增加41 echo $redis->zscore('set', 'dog');echo '
';42 $redis->zincrby('set', 2, 'dog');43 echo $redis->zscore('set', 'dog');echo '
';44 45 //移除score值介于min和max之间的元素46 print_r($redis->zrange('set', 0, -1, true));echo '
';47 print_r($redis->zremrangebyscore('set', 3, 4));echo '
';48 print_r($redis->zrange('set', 0, -1, true));echo '
';49 50 //结果51 // 152 // 053 // 054 // 055 // 056 // Array ( [0] => cat [1] => fish [2] => bird [3] => dog )57 // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )58 // 459 // 460 // Array ( [0] => fish [1] => bird [2] => dog )61 // 362 // Array ( [0] => fish [1] => bird [2] => dog )63 // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )64 // Array ( [0] => bird [1] => fish )65 // Array ( [bird] => 4 [fish] => 3 )66 // 467 // 668 // Array ( [fish] => 3 [bird] => 4 [dog] => 6 )69 // 270 // Array ( [dog] => 6 )

转载于:https://www.cnblogs.com/wanghanlin/p/10338913.html

你可能感兴趣的文章
线程androidAndroid ConditionVariable的用法
查看>>
设置类UIColor使用colorWithRed定义颜色
查看>>
μC/OS-III---I笔记13---中断管理
查看>>
:after,:before,content
查看>>
FTTB FTTC FTTH FTTO FSA
查看>>
OpenAI Gym
查看>>
stap-prep 需要安装那些内核符号
查看>>
网易杭研后台技术中心的博客 -MYSQL :OOM
查看>>
第二章 数据通信的基础知识 计算机网络笔记 学堂在线 2.1 数据传输系统 2.2 信号...
查看>>
如何解决click事件的重复触发问题
查看>>
2016寒假自学笔记
查看>>
VC++2012编程演练数据结构《21》二叉排序树
查看>>
对输入法的评价
查看>>
Lucene系列一:搜索引擎核心理论
查看>>
MVC3删除主表时自动删除从表中相关信息的方法
查看>>
Cannot Change Opencv Webcam Setting
查看>>
南传法句经(摘选)01
查看>>
poj1417(种类并查集+dp)
查看>>
CCI_Q1.1
查看>>
JavaScript设计模式与开发实践pdf
查看>>