访问连接

远程访问
//实例化
$redis=new Redis();
try{
$redis->connect('47.98.55.11','6379');
$redis->auth('123456');
echo $redis->ping();
}catch (Exception $e){
echo $e->getMessage();
}

字符串操作(string)

//设置
$redis->set('name','jack');
//只有key不能存在时才有效,没有修改效果
$redis->setnx('name','jack');
//读取 echo $redis->get('name');

列表(list)存入

//左侧存入
$redis->lPush('list','css');
//读取所有
$list=$redis->lRange('list','0','-1');
print_r($list);
//获取列表长度
echo $redis->lSize('list');
//按照索引取值
echo $redis->lGet('list',2);
echo $redis->lindex('list',3);
//按照索引范围取值
$list=$redis->lRange('list',0,2);
print_r($list);
//列表截取,截取的部分保留,其他删除,成功返回1
$ret=$redis->lTrim('list',0,1);
print_r($ret);
//删除
//删除列表中value为python的元素count个,count为正从左边开始,反之同理,count为0表示删除所有值为python的
$redis->lRem('list','python',1);

列表实现队列

//实例化
$redis=new Redis();
try{
$redis->pconnect('47.98.55.11','6379');//守护进程
$redis->auth('123456');
echo $redis->ping();
}catch (Exception $e){
echo $e->getMessage();
}
echo '<hr/>'; for($i=0;$i<50;$i++){
try{
$redis->lPush('click',rand(1000,5000));
}catch (Exception $e){
echo $e->getMessage();
}
} //取数据
while (true){
try{
$value=$redis->rPop('click');
if(!$value){
break;
}
}catch (Exception $e){
echo $e->getMessage();
}
}

字典(hash)

设置
//返回1设置成功,0表示失败,如果有值,则是修改,返回0
echo $redis->hSet('hash','username','rose');
//读取
echo $redis->hGet('hash','age');
//读取所有的keys
$ret=$redis->hKeys('hash');
print_r($ret);
//读取所有的val,顺序是随机的
$ret=$redis->hVals('hash');
//读取所有的key-val,顺序是随机的
$ret=$redis->hGetAll('hash');
//hsah的长度
$ret=$redis->hLen('hash');
//删除指定key的键值对,成功返回true,失败返回false
echo $redis->hDel('hash','age');
//存入字典
$arr=['uaername'=>'jack','age'=>23,'gender'=>'boy'];
$redis->hMSet('userinfo',$arr); //指定对个key获取内容
$arr_key=['username','gender'];
$ret=$redis->hMGet('userinfo',$arr_key); //判断某个key是否存在
$ret=$redis->hExists('userinfo','age');
//值只能为整数,不存在设置,存在的话自增2,
$ret=$redis->hIncrBy('userinfo','1',2);
//小数,存在则自增,不存在则则增加
$ret=$redis->hIncrByFloat('userinfo','3',1.5);

无序集合(set)

//添加元素
$ret=$redis->sAdd('fruits','冬瓜');
//删除元素
$ret=$redis->sRem('fruits','地瓜');
//判断是否是成员
$ret=$redis->sIsMember('fruits','南瓜'); //查看数据长度
$ret=$redis->sCard('fruits');
//随机删除元素,并返回删除的值
$ret=$redis->sPop('fruits'); //交集
$ret=$redis->sInter('f1','f2');
//获取交集并放到集合output中
$redis->sInterStore('output','f1','f2');
//并集
$ret=$redis->sUnion('f1','f2'); //并集,并放到output中
$ret=$redis->sUnionStore('output','f1','f2');
//差集f1-f2
$ret=$redis->sDiff('f1','f2');
//差集f1-f2,并保存到集合output
$ret=$redis->sDiffStore('output','f1','f2'); //查看集合所有内容
$ret=$redis->sMembers('fruits');

有序集合(Sorted Set)

//增加
$redis->zadd('s1', 1, 'ab');
//删除指定成员
echo $redis->zRem('s1','ef');
/ zincrby 对指定元素分数值的增减
$redis->zincrby('s1', 2, 'ab');
//返回score
echo $redis->zscore('s1', 'ef');
//移除指定元素
$redis->zrem('s1', 'ef');
按分数值返回元素
$redis->zrangebyscore('s1', 2, 9); // 返回分数值2-9之间的元素
$redis->zrangebyscore('s1', 2, 9, 'withscores'); // 返回分数值2-9之间的元素,并包含分数值所在元素
//查看集合所有内容
$ret=$redis->zRange('s1',0,-1);
//返回集合长度
print_r($redis->zcard('s1'));

其他

后续补充

php redis使用的更多相关文章

  1. 使用redis构建可靠分布式锁

    关于分布式锁的概念,具体实现方式,直接参阅下面两个帖子,这里就不多介绍了. 分布式锁的多种实现方式 分布式锁总结 对于分布式锁的几种实现方式的优劣,这里再列举下 1. 数据库实现方式 优点:易理解 缺 ...

  2. Ignite性能测试以及对redis的对比

    测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认 ...

  3. mac osx 安装redis扩展

    1 php -v查看php版本 2 brew search php|grep redis 搜索对应的redis   ps:如果没有brew 就根据http://brew.sh安装 3 brew ins ...

  4. Redis/HBase/Tair比较

    KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式    支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...

  5. Redis数据库

    Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...

  6. redis 学习笔记(2)

    redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...

  7. redis 学习笔记(1)

    redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...

  8. python+uwsgi导致redis无法长链接引起性能下降问题记录

    今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...

  9. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  10. windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...

随机推荐

  1. C#中HashSet的重复性与判等运算重载

    目录 一个故事-- 一个繁荣的遥远国度:泛型容器 但是我也不确定容器里能放些什么东西啊 一个英勇的皇家骑士:HashSet 值类型的HashSet 引用类型的HashSet 另外一个--故--事?? ...

  2. ResNet详解与分析

    目录 Resnet要解决的是什么问题 Residual Block的设计 ResNet 网络结构 error surface对比 Residual Block的分析与改进 小结 参考 博客:博客园 | ...

  3. ORB-SLAM2 论文&代码学习 —— LoopClosing 线程

    转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12369339.html 本文要点: ORB-SLAM2 LoopC ...

  4. 13.python内置模块之re模块

    什么是正则? 正则表达式也称为正则,是一个特殊的字符序列,能帮助检查一个字符串是否与某种模式匹配.可以用来进行验证:邮箱.手机号.qq号.密码.url = 网站地址.ip等.正则不是python语言独 ...

  5. Spring Boot从入门到精通(一)搭建第一个Spring Boot程序

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

  6. linux centos7安装mysql8

    一.RPM版安装 查看是否有其他版本的数据库,若有,删除干净 非root用户必须要有sudo权限 1.下载mysql相关安装包 https://mirrors.tuna.tsinghua.edu.cn ...

  7. #6029. 「雅礼集训 2017 Day1」市场 [线段树]

    考虑到每次除法,然后加法,差距会变小,于是维护加法lazytag即可 #include <cstdio> #include <cmath> #define int long l ...

  8. 使用scrapy框架爬取图片网全站图片(二十多万张),并打包成exe可执行文件

    目标网站:https://www.mn52.com/ 本文代码已上传至git和百度网盘,链接分享在文末 网站概览 目标,使用scrapy框架抓取全部图片并分类保存到本地. 1.创建scrapy项目 s ...

  9. python3-cookbook笔记:第五章 文件与IO

    python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...

  10. Mysql连接字符,字段函数concat()

    Mysql连接字符,字段函数concat() 可将多个字符串或字段连接,多个参数以逗号隔开 select concat('现在是:',new_date) from work