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 ‘<br>‘; 10 11 ????//从右侧加入一个12 ????$redis->rpush(‘list‘, ‘mysql‘);13 ????$list = $redis->lrange(‘list‘, 0, -1);14 ????print_r($list);echo ‘<br>‘;15 16 ????//从左侧弹出一个17 ????$redis->lpop(‘list‘);18 ????$list = $redis->lrange(‘list‘, 0, -1);19 ????print_r($list);echo ‘<br>‘;20 21 ????//从右侧弹出一个22 ????$redis->rpop(‘list‘);23 ????$list = $redis->lrange(‘list‘, 0, -1);24 ????print_r($list);echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->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 ‘<br>‘; 18 19 ????//获取列表的长度20 ????$length = $redis->lsize(‘list‘);21 ????echo $length;echo ‘<br>‘;22 23 ????//返回列表key中index位置的值24 ????echo $redis->lget(‘list‘, 2);echo ‘<br>‘;25 ????echo $redis->lindex(‘list‘, 2);echo ‘<br>‘;26 27 ????//设置列表中index位置的值28 ????echo $redis->lset(‘list‘, 2, ‘linux‘);echo ‘<br>‘;29 ????$list = $redis->lrange(‘list‘, 0, -1);30 ????print_r($list);echo ‘<br>‘;31 32 ????//返回key中从start到end位置间的元素33 ????$list = $redis->lrange(‘list‘, 0, 2);34 ????print_r($list);echo ‘<br>‘;35 36 ????$list = $redis->lgetrange(‘list‘, 0, 2);37 ????print_r($list);echo ‘<br>‘;38 39 ????//截取链表中start到end的元素
//截取列表后列表发生变化,列表保留截取的元素,其余的删除40 ????$list = $redis->ltrim(‘list‘, 0, 1);41 ????print_r($list);echo ‘<br>‘;42 ????43 ????$list = $redis->lrange(‘list‘, 0, -1);44 ????print_r($list);echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->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 ‘<br>‘; 23 24 ????//删除列表中count个值为value的元素25 ????//从左向右删26 ????$redis->lrem(‘list‘, ‘html‘, 2);27 ????$list = $redis->lrange(‘list‘, 0, -1);28 ????print_r($list);echo ‘<br>‘; 29 ????30 ????//从右向左删31 ????$redis->lrem(‘list‘, ‘html‘, -2);32 ????$list = $redis->lrange(‘list‘, 0, -1);33 ????print_r($list);echo ‘<br>‘; 34 35 ????//删除所有36 ????$redis->lrem(‘list‘, ‘html‘, 0);37 ????$list = $redis->lrange(‘list‘, 0, -1);38 ????print_r($list);echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->connect(‘127.0.0.1‘, 6379); 6 ????//字典 7 ????//给hash表中某个key设置value 8 ????//如果没有则设置成功,返回1,如果存在会替换原有的值,返回0,失败返回0 9 ????echo $redis->hset(‘hash‘, ‘cat‘, ‘cat‘);echo ‘<br>‘;10 ????echo $redis->hset(‘hash‘, ‘cat‘, ‘cat‘);echo ‘<br>‘;11 ????echo $redis->hset(‘hash‘, ‘cat‘, ‘cat1‘);echo ‘<br>‘;12 ????echo $redis->hset(‘hash‘, ‘dog‘, ‘dog‘);echo ‘<br>‘;13 ????echo $redis->hset(‘hash‘, ‘bird‘, ‘bird‘);echo ‘<br>‘;14 ????echo $redis->hset(‘hash‘, ‘monkey‘, ‘monkey‘);echo ‘<br>‘;15 ????//获取hash中某个key的值16 ????echo $redis->hget(‘hash‘, ‘cat‘);echo ‘<br>‘;17 18 ????//获取hash中所有的keys19 ????$arr = $redis->hkeys(‘hash‘);20 ????print_r($arr);echo ‘<br>‘;21 22 ????//获取hash中所有的值 顺序是随机的23 ????$arr = $redis->hvals(‘hash‘);24 ????print_r($arr);echo ‘<br>‘;25 26 ????//获取一个hash中所有的key和value 顺序是随机的27 ????$arr = $redis->hgetall(‘hash‘);28 ????print_r($arr);echo ‘<br>‘;29 30 ????//获取hash中key的数量31 ????echo $redis->hlen(‘hash‘);echo ‘<br>‘;32 33 ????//删除hash中一个key 如果表不存在或key不存在则返回false34 ????echo $redis->hdel(‘hash‘, ‘dog‘);echo ‘<br>‘;35 ????var_dump($redis->hdel(‘hash‘, ‘rabbit‘));echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->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 ‘<br>‘;11 12 ????// 批量获得额多个key的值13 ????$arr = [1, 2, 3, 5];14 ????$hash = $redis->hmget(‘hash‘, $arr);15 ????print_r($hash);echo ‘<br>‘;16 17 ????//检测hash中某个key知否存在18 ????echo $redis->hexists(‘hash‘, ‘1‘);echo ‘<br>‘;19 ????var_dump($redis->hexists(‘hash‘, ‘cat‘));echo ‘<br>‘;20 21 ????print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;22 23 ????//给hash表中key增加一个整数值24 ????$redis->hincrby(‘hash‘, ‘1‘, 1);25 ????print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;26 27 ????//给hash中的某个key增加一个浮点值28 ????$redis->hincrbyfloat(‘hash‘, 2, 1.3);29 ????print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->connect(‘127.0.0.1‘, 6379); 6 ????//集合 7 ????// 添加一个元素 8 ????echo $redis->sadd(‘set‘, ‘cat‘);echo ‘<br>‘; 9 ????echo $redis->sadd(‘set‘, ‘cat‘);echo ‘<br>‘;10 ????echo $redis->sadd(‘set‘, ‘dog‘);echo ‘<br>‘;11 ????echo $redis->sadd(‘set‘, ‘rabbit‘);echo ‘<br>‘;12 ????echo $redis->sadd(‘set‘, ‘bear‘);echo ‘<br>‘;13 ????echo $redis->sadd(‘set‘, ‘horse‘);echo ‘<br>‘;14 15 ????// 查看集合中所有的元素16 ????$set = $redis->smembers(‘set‘);17 ????print_r($set);echo ‘<br>‘;18 19 ????//删除集合中的value20 ????echo $redis->srem(‘set‘, ‘cat‘);echo ‘<br>‘;21 ????var_dump($redis->srem(‘set‘, ‘bird‘));echo ‘<br>‘;22 23 ????$set = $redis->smembers(‘set‘);24 ????print_r($set);echo ‘<br>‘;25 26 ????//判断元素是否是set的成员27 ????var_dump($redis->sismember(‘set‘, ‘dog‘));echo ‘<br>‘;28 ????var_dump($redis->sismember(‘set‘, ‘bird‘));echo ‘<br>‘;29 30 ????//查看集合中成员的数量31 ????echo $redis->scard(‘set‘);echo ‘<br>‘;32 33 ????//移除并返回集合中的一个随机元素(返回被移除的元素)34 ????echo $redis->spop(‘set‘);echo ‘<br>‘;35 36 ????print_r($redis->smembers(‘set‘));echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->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 ‘<br>‘;16 ????print_r($redis->smembers(‘set2‘));echo ‘<br>‘;17 18 ????//返回集合的交集19 ????print_r($redis->sinter(‘set‘, ‘set2‘));echo ‘<br>‘;20 21 ????//执行交集操作 并结果放到一个集合中22 ????$redis->sinterstore(‘output‘, ‘set‘, ‘set2‘);23 ????print_r($redis->smembers(‘output‘));echo ‘<br>‘;24 25 ????//返回集合的并集26 ????print_r($redis->sunion(‘set‘, ‘set2‘));echo ‘<br>‘;27 28 ????//执行并集操作 并结果放到一个集合中29 ????$redis->sunionstore(‘output‘, ‘set‘, ‘set2‘);30 ????print_r($redis->smembers(‘output‘));echo ‘<br>‘;31 32 ????//返回集合的差集33 ????print_r($redis->sdiff(‘set‘, ‘set2‘));echo ‘<br>‘;34 35 ????//执行差集操作 并结果放到一个集合中36 ????$redis->sdiffstore(‘output‘, ‘set‘, ‘set2‘);37 ????print_r($redis->smembers(‘output‘));echo ‘<br>‘;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 <?php 2 ????//实例化redis 3 ????$redis = new Redis(); 4 ????//连接 5 ????$redis->connect(‘127.0.0.1‘, 6379); 6 ????//有序集合 7 ????//添加元素 8 ????echo $redis->zadd(‘set‘, 1, ‘cat‘);echo ‘<br>‘; 9 ????echo $redis->zadd(‘set‘, 2, ‘dog‘);echo ‘<br>‘;10 ????echo $redis->zadd(‘set‘, 3, ‘fish‘);echo ‘<br>‘;11 ????echo $redis->zadd(‘set‘, 4, ‘dog‘);echo ‘<br>‘;12 ????echo $redis->zadd(‘set‘, 4, ‘bird‘);echo ‘<br>‘;13 ????14 ????//返回集合中的所有元素15 ????print_r($redis->zrange(‘set‘, 0, -1));echo ‘<br>‘;16 ????print_r($redis->zrange(‘set‘, 0, -1, true));echo ‘<br>‘;17 18 ????//返回元素的score值19 ????echo $redis->zscore(‘set‘, ‘dog‘);echo ‘<br>‘;20 21 ????//返回存储的个数22 ????echo $redis->zcard(‘set‘);echo ‘<br>‘;23 24 ????//删除指定成员25 ????$redis->zrem(‘set‘, ‘cat‘);26 ????print_r($redis->zrange(‘set‘, 0, -1));echo ‘<br>‘;27 28 ????//返回集合中介于min和max之间的值的个数29 ????print_r($redis->zcount(‘set‘, 3, 5));echo ‘<br>‘;30 31 ????//返回有序集合中score介于min和max之间的值32 ????print_r($redis->zrangebyscore(‘set‘, 3, 5));echo ‘<br>‘;33 ????print_r($redis->zrangebyscore(‘set‘, 3, 5, [‘withscores‘=>true]));echo ‘<br>‘;34 35 ????//返回集合中指定区间内所有的值36 ????print_r($redis->zrevrange(‘set‘, 1, 2));echo ‘<br>‘;37 ????print_r($redis->zrevrange(‘set‘, 1, 2, true));echo ‘<br>‘;38 39 40 ????//有序集合中指定值的socre增加41 ????echo $redis->zscore(‘set‘, ‘dog‘);echo ‘<br>‘;42 ????$redis->zincrby(‘set‘, 2, ‘dog‘);43 ????echo $redis->zscore(‘set‘, ‘dog‘);echo ‘<br>‘;44 45 ????//移除score值介于min和max之间的元素46 ????print_r($redis->zrange(‘set‘, 0, -1, true));echo ‘<br>‘;47 ????print_r($redis->zremrangebyscore(‘set‘, 3, 4));echo ‘<br>‘;48 ????print_r($redis->zrange(‘set‘, 0, -1, true));echo ‘<br>‘;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 )
PHP操作redis
原文地址:https://www.cnblogs.com/cjymuyang/p/9552580.html