PHP与REDIS
安装
1.一定要搞懂自己php的版本,和环境,今天试一上午,就是因为X86,而我的php环境是X64.
2. 将下载的php_redis.dll和php_igbinary.dll放在php扩展目录中(ext),并修改配置文件php.ini
3.重新启动服务
常用操作
<?php
//PHP操作redis
/*链接redis*/
$redis = new redis();
$result = $redis->connect('127.0.0.1', 6379); /*set 设置 key的值*/
$result = $redis->set('key',"abc"); /*get 获取key的值*/
$result = $redis->get('key');
var_dump($result); //string 'abc' (length=3) /*delete 删除指定的key*/
$redis->set('test',"123456");
$redis->delete('test');
var_dump($redis->get('test')); //boolean false /*setnx 如果数据库中不存在key键,生成key键*/
$redis->setnx('test2',"22222222");
var_dump($redis->get('test2')); //string '22222222' (length=8) /*exists 验证key是否存在*/
var_dump($redis->exists('test2')); //boolean true /*incr 递增数据*/
$redis->set('test',"123");
var_dump($redis->incr("test")); //int 124 /*decr 递减数据*/
var_dump($redis->decr("test")); //int 123 /*getMultiple 给参数数组赋值*/
$redis->set('test1',"1");
$redis->set('test2',"2");
var_dump($redis->getMultiple(array('test1','test2'))); //array (size=2) 0 => string '1' (length=1) 1 => string '2' (length=1) /*lpush 由列表头部添加字符串值。如果不存在该键则创建该列表*/
$redis->delete('test');
var_dump($redis->lpush("test","111")); //结果:int(1)
var_dump($redis->lpush("test","abc")); //结果:int(2) /*rpush 由列表尾部添加字符串值。如果不存在该键则创建该列表。*/
var_dump($redis->rpush("test","333")); //结果:int(3)
var_dump($redis->rpush("test","444")); //结果:int(4) /*lpop 返回和移除列表的第一个元素*/
var_dump($redis->lpop("test")); //string 'abc' (length=3) /*lsize,llen 返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。*/
var_dump($redis->lsize("test")); //int 3 /*lget 返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二*/
var_dump($redis->lget("test",0)); //string '111' (length=3) /*lset 为列表指定的索引赋新的值*/
var_dump($redis->lset("test",0,"333")); //boolean true /*lgetrange 返回在该区域中的指定键列表中开始到结束存储的指定元素*/
print_r($redis->lgetrange("test",0,-1)); // Array ( [0] => 333 [1] => 333 [2] => 444 ) /*lremove 从列表中从头部开始移除count个匹配的值。 key count*/
var_dump($redis->lremove('test','333',1));
print_r($redis->lgetrange('test', 0, -1)); // Array ( [0] => 333 [1] => 444 ) /*sadd 为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。*/
var_dump($redis->sadd('bigtest','111'));
var_dump($redis->sadd('bigtest','333'));
print_r($redis->sort('bigtest')); //Array ( [0] => 111 [1] => 333 ) /*sremove 删除Key中指定的value值*/
$redis->sremove('bigtest','111');
print_r($redis->sort('bigtest')); //Array ( [0] => 333 ) /*smove 将Key1中的value移动到Key2中*/
$redis->delete('test');
$redis->delete('test1');
$redis->sadd('test','111');
$redis->sadd('test','333');
$redis->sadd('test1','222');
$redis->sadd('test1','444');
$redis->smove('test',"test1",'111');
print_r($redis->sort('test1')); //Array ( [0] => 111 [1] => 222 [2] => 444 ) /*scontains 检查集合中是否存在指定的值*/
var_dump($redis->scontains('test1', '111')); //boolean true /*ssize 返回集合中存储值的数量*/
echo $redis->ssize('test1'); //3 /*spop 随机移除并返回key中的一个值*/
var_dump($redis->spop("test1")); /*sinter 返回一个所有指定键的交集。*/
var_dump($redis->sinter("test","test1")); //empty /*sinterstore 把结果储存到新建的变量中*/
var_dump($redis->sinterstore('new',"test","test1")); /*sunion 返回一个所有指定键的并集*/
print_r($redis->sunion("test","test1")); /*sunionstore 把结果储存到新建的变量中*/
var_dump($redis->sunionstore('new',"test","test1")); //int 3 /*sdiff 返回第一个集合中存在并在其他所有集合中不存在的结果*/
print_r($redis->sdiff("test","test1")); //Array ( [0] => 333 ) /*sdiffstore 执行sdiff命令并把结果储存到新建的变量中*/
var_dump($redis->sdiffstore('new',"test","test1")); //int 1 /*smembers, sgetmembers 返回集合的内容*/
print_r($redis->smembers('test1')); //Array ( [0] => 111 [1] => 444 ) ?>
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组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
随机推荐
- 条件注释判断IE版本
在学习Bootstra的时候看到这么一句话, <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media ...
- Js特殊字符转义之htmlEscape()方法
为了防止XSS攻击,常常需要将用户输入的特殊字符进行转义,原生js貌似还没有直接对其专业的方法,最近再读Js高级程序设计的时候刚好看到,碰巧项目中也刚好需要使用次方法,于是就之家搬来用了. 网上关于转 ...
- PHP数组实际占用内存大小的分析
一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G.下面我们可以粗略的估算PHP数组占用内存的大小,首先我们测试1000个元素的整数 ...
- Mysql 的 IF 判断
mysql自带很多判断逻辑,今天说一说IF的判断语句,正好今天做项目的时候也用到了 1. IF 判断 IF判断和我们代码里面写的有略微的差别,举个例子 IF('表达式','结果1','结果2') 如 ...
- jq获取今天、昨天、一周时间
不少后台文章管理系统就有今天.明天.一周内.全部的分类展示,用Jquery获取今天.明天.一周内的时间节点(如下图) html页面代码: <div class="date-list-c ...
- netty详解之reactor模型
假设在办理各种证件时分为填表,审核,制作3个过程,每个过程用时10分钟,这样一个工作人员需要30分钟办理一个证件.那么有没有办法提供效率,减少等待时间呢.可以让一个专门的工作人员,每个顾客到来时就负责 ...
- 剑指Offer_5_替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成"%20". 例如,当字符串为We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy. 在网络编程 ...
- Java IO(3)非阻塞式输入输出(NIO)
在上篇<Java IO(2)阻塞式输入输出(BIO)>的末尾谈到了什么是阻塞式输入输出,通过Socket编程对其有了大致了解.现在再重新回顾梳理一下,对于只有一个“客户端”和一个“服务器端 ...
- 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'
1.错误描写叙述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select count(t.id),t.`createUserId` ...
- NFS介绍和安装
NFS简单介绍 NFS 是Network File System的缩写,即网络文件系统. 一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外发布.功能是通过网络让不同的机器.不同的操作 ...