<?php
/**
* php使用redis示例
* redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)。
*/
function redis_example(){
$redis = new \redis();
$redis->connect('127.0.0.1','6379');
$redis->auth('face_api');
/**
* String(字符串)
* string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
* string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
* string 类型是 redis 最基本的数据类型,string 类型的值最大能存储 512MB。
*/
$redis->set('username','赵先生string');
$result = $redis->get('username');
var_dump($result);
/**
* Hash(哈希)
* redis hash 是一个键值(key=>value)对集合。
* redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
*/
$hash_value = ['user1'=>'111','user2'=>'哈哈'];
$redis->hMset('hash',$hash_value);
$result = $redis->hGetAll('hash');
$results = $redis->hGet('hash','user2');
var_dump($result);
var_dump($results);
/**
* List(列表)
* redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
*/
$redis->del('list-test');
$redis->lPush('list-test','赵先生list1');
$redis->lPush('list-test','赵先生list2');
$redis->lPush('list-test','赵先生list3');
$result = $redis->lRange('list-test',0,5);
var_dump($result);
/**
* Set(集合)
* redis 的 Set 是 string 类型的无序集合。
* 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
* 添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0。
*/
$redis->sAdd('sAdd','赵先生sAdd1');
$redis->sAdd('sAdd','赵先生sAdd2');
$redis->sAdd('sAdd','赵先生sAdd3');
$redis->sAdd('sAdd','赵先生sAdd3');
$result = $redis->sMembers('sAdd');
var_dump($result);
/**
* zset(有序集合)
* redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
* 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
* zset的成员是唯一的,但分数(score)却可以重复。
*/
$redis->zAdd('zAdd',0,'赵先生zAdd1');
$redis->zAdd('zAdd',0,'赵先生zAdd2');
$redis->zAdd('zAdd',0,'赵先生zAdd3');
$redis->zAdd('zAdd',0,'赵先生zAdd4');
$result = $redis->zRangeByScore('zAdd',0,5);
var_dump($result);
//获取所有的key
$result = $redis->keys('*');
var_dump($result);
}
1.创建频道名为 redisChat 的订阅
2.在频道 redisChat 发布消息,订阅者就能接收到消息