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组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
随机推荐
- 1236 - Pairs Forming LCM
1236 - Pairs Forming LCM Find the result of the following code: long long pairsFormLCM( int n ) { ...
- PYTHON 学习笔记4 模块的使用、基本IO 写入读取、JSON序列化
前言 若在之前写代码的方式中,从Python 解释器进入.退出后再次进入,其定义的变量.函数等都会丢失.为了解决这个为,我们需要将需要的函数.以及定义的变量等都写入一个文件当中.这个文件就叫做脚本 随 ...
- Java @Deprecated Annotation(注解)
在本部分的快速指南中,我们将会查看 Java 的 deprecated API 和如何在程序中使用 @Deprecated 注解. @Deprecated Annotation(注解) 作为程序的进化 ...
- $.getJSON获取json数据失败
首先简单介绍下 $.ajax $.get $.post $.getJSON 的区别和用法 $.ajax中有一个type属性,专门用来指定是get请求还是post请求的分别对应的就是$.get和$ ...
- PMP--1.5 项目管理描述
项目所处的环境将影响每个项目管理过程的实施方式以及项目制约因素的优先顺序. 一. 管理一个项目的过程 管理一个项目通常包括(但不限于): 1. 识别项目需求 2. 处理相关方的各种需要.关注和期望 ...
- 转载:字符编码简介 ASCII UTF-8 ISO8859-1
字符编码简介 ASCII UTF-8 ISO8859-1 博客分类: 电脑综合知识 XP数据结构Windows 计算机中的一切都是以数字来表示的,字符同样如此.字符编码就是将字符集编码成为数字序列, ...
- Erlang/Elixir精选-第6期(20200113)
精选文章 Implementing languages on the Erlang VM. -Robert Virding. 因为视频没有显示PPT,PPT可以在点击这里下载. leex - lexi ...
- mysql必知必会--了解SQL
什么是数据库 数据库这个术语的用法很多,但就本书而言,数据库是一个以某种 有组织的方式存储的数据集合.理解数据库的一种最简单的办法是将其 想象为一个文件柜.此文件柜是一个存放数据的物理位置,不管数据是 ...
- P1651 塔
----------------- 链接:Miku ----------------- 这是一道dp题,我么很容易发现这点. 数据范围很大,如果直接用两个塔的高度当状态,很危险,我们就必须要考虑一下优 ...
- HDU-1166 敌兵布阵 (树状数组模板题——单点更新,区间求和)
题目链接 AC代码: #include<iostream> #include<cstdio> #include<cstring> #include<algor ...