redis参考学习手册:
[www.redis.cn](http:
[www.runoob.com](https:
string类型(string类型类似memcached的key-value结构)
$redis->set($key,$value);
$redis->set('name','大米饭');
$redis->get($key);
$redis->get('name'); //输出"大米饭"
$redis->setex($key,$second_time,$value); //$second_time--秒数
$redis->setex('age',10,'24'); //10s后 age这个key就过期不存在了
$redis->psetex($key, $ms_time, $value); //$ms_time--毫秒数
$redis->psetex('age', 10000, '24'); //10s后 age这个key就过期不存在了
$redis->sexnx($key,$value); //若键存在,则设置失败返回false;键不存在,返回true
$redis->ttl($key);
$redis->ttl('age'); //返回剩余的生存时间-秒数
$redis->exists($key); //检测键是否存在
$redis->delete($key); //删除键,支持传数组array($key1,$key2,...),一次删除多个key
list链表类型
set集合类型(无序集合,不允许出现重复的元素)
$redis->sAdd($key,$value); //从左侧插入,最后插入的元素在0位置,集合中存在$value,则插入失败返回false
$redis->sMembers($key) //获取key所有的元素
$redis->sIsMember($key,$value); //判断$value是否在$key的集合中
$redis->sRem($key,$value);
$redis->sMove($ori_key,$dest_key,$ori_value); //将$ori_key中的$ori_value移到$dest_key集合中
$redis->sCard($key);//返回$key集合的成员数
$redis->sPop($key); //随机返回集合中一个元素,并从集合中移除该元素
$redis->sInter($key0,$key1); //取两个集合的交集,没有交集则返回空数组;如参数只有一个数组,则返回集合对应的完整的数组
$redis->sInterStore($dest_key,$ori_key0,$ori_key1); //将集合$ori_key0和$ori_key1取交集然后放到$dest_key集合里,成功返回1
$redis->sUnion($key0,$key1); //取两个集合并集
$redis->sDiff(); //返回数组,该数组元素是存在于$key集合而不存在于集合$key0,$key1
zset有序类型 (有序集合,每个元素会关联一个double类型的分数)
$redis->zAdd($key,1,$value);
$redis->zRange($key,0,-1);
$redis->zRange($key,0,-1,true);
hash类型
$redis->hSet($key,$field,$value);
$redis->hSetNx($key,$field,$value);
$redis->hGet($key,$field);
$redis->hMSet($key,array($field0=>$value0,$field1=>$value1));
$redis->hMGet($key,array($field0,$field1));
$redis->hGetAll($key);
$redis->hKeys($key);
$redis->hVals($key);
$redis->hExists($key,$field);
$redis->hLen($key);
$redis->hDel($key,$field);
批量删除redis的key
public function delSimilarKeys($prefix)
{
for ($i = 0; $i < 10; $i++) {
$this->redis->set($prefix . "$i", "$i");
}
$this->redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
$it = NULL;
while (true) {
$arr_keys = $this->redis->scan($it, "$prefix*");
if ($arr_keys === false) {
return;
}
call_user_func_array([$this->redis, 'del'], $arr_keys);
}
return $arr_keys;
}
同理:可批量设置前缀相同的key的缓存时间
redis相关命令
1. 启动redis服务:redis-server /path/to/redis.conf [&] (以配置文件的配置进行加载,&以后台启动)
2. 启动redis客户端: redis-cli
3. 查看redis相关进程: ps aux |grep redis
4. 杀死redis相关进程: kill -9 redis进程id (进程id可通过上面一句命令拿到)
1. redis配置文件设置了requirepass,在拿到redis实例后,应该加上 $redis->auth($password);
我是一个懒人,写完再把这句话删掉!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】