php redis使用
访问连接
远程访问
//实例化
$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使用的更多相关文章
- 使用redis构建可靠分布式锁
关于分布式锁的概念,具体实现方式,直接参阅下面两个帖子,这里就不多介绍了. 分布式锁的多种实现方式 分布式锁总结 对于分布式锁的几种实现方式的优劣,这里再列举下 1. 数据库实现方式 优点:易理解 缺 ...
- Ignite性能测试以及对redis的对比
测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认 ...
- mac osx 安装redis扩展
1 php -v查看php版本 2 brew search php|grep redis 搜索对应的redis ps:如果没有brew 就根据http://brew.sh安装 3 brew ins ...
- Redis/HBase/Tair比较
KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式 支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...
- Redis数据库
Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...
- redis 学习笔记(2)
redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...
- redis 学习笔记(1)
redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...
- python+uwsgi导致redis无法长链接引起性能下降问题记录
今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
随机推荐
- JS生成全局唯一标识符(GUID,UUID)的方法
全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...
- Mac解决:xcode-select: error: command line tools are already installed, use "Software Update" to install updates
1.因为node项目终端报错: No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'. No receipt for 'com ...
- C primer plus 6 编程练习答案
环境:vs2017 /**编程练习2**/ */ #include<stdio.h> int main(void) { printf("张三\n"); printf(& ...
- 11.Android-Xml读写
android中写XML时,需要用到XmlSerializer类 解析XML时,则需要用到XmlPullParser类 1.XmlSerializer类介绍 通过Xml.newSerializer() ...
- 「Flink」理解流式处理重要概念
什么是流式处理呢? 这个问题其实我们大部分时候是没有考虑过的,大多数,我们是把流式处理和实时计算放在一起来说的.我们先来了解下,什么是数据流. 数据流(事件流) 数据流是无边界数据集的抽象 我们之前接 ...
- .NET CORE(C#) WPF 方便的实现用户控件切换(祝大家新年快乐)
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF 方便的实现用户控件切换(祝大家新年快乐) 快到2020年了 ...
- Html介绍,了解html代码的注释
什么是代码注释?在代码编辑器中的注释代码是不会在浏览器窗口展示的!html代码注释的作用是帮助程序员标注代码的用途,过一段时间后再看你之前编写的代码,很快可以想起这个代码的用途.代码注释不仅方便程序员 ...
- jdk1.7、jdk1.8兼容共存环境配置方案
前提:环境变量配置 JAVA_HOME=%JAVA_HOME8% JAVA_HOME8=E:\jdk1.8.0_40 JAVA_HOME7=E:\jdk1.7.0_51 path 一.jdk是绿色免安 ...
- C语言再学习part2-重新认识C语言词汇
迷阳迷阳,无伤吾行.无行郗曲,无伤吾足.—庄子 C语言词汇: 标识符 在程序中的变量名.函数名.标号等等成为标识符.其中标识符相在C中只能是字母A~Z,a~z,数字0~9,下划线(_)组成的字符串,并 ...
- c++标准库与对应的函数
#include <algorithm> sort(obj.begin(),obj.end());//从小到大 reverse(obj.begin(),obj.end());//从大到小 ...