phpredis

phpRedis migration to cluster and consistent hashing

走远了吗. 提交于 2021-02-18 08:00:08
问题 We are currently using PhpRedis extension and our code is written using the class Redis from the PhpRedis . But now we are migrating to a redis cluster. Is it possible to use the Class Redis to connect to redis cluster? or do we need to re-write our code and use the Class RedisArray? We ll need to have consistent hashing too. We have added keys like this {user}:1 so we can do consistent hashing later. main problem is taking all the code written using the class Redis and changing it to

phpRedis migration to cluster and consistent hashing

倾然丶 夕夏残阳落幕 提交于 2021-02-18 07:59:21
问题 We are currently using PhpRedis extension and our code is written using the class Redis from the PhpRedis . But now we are migrating to a redis cluster. Is it possible to use the Class Redis to connect to redis cluster? or do we need to re-write our code and use the Class RedisArray? We ll need to have consistent hashing too. We have added keys like this {user}:1 so we can do consistent hashing later. main problem is taking all the code written using the class Redis and changing it to

PHP二维数组排序

試著忘記壹切 提交于 2021-02-10 08:14:40
一、问题  从 Redis 中取出的 hvals 值排序是随机的(参看: https://github.com/phpredis/phpredis#hvals The order is random and corresponds to redis' own internal representation of the set structure.),导致前端显示与从数据库取出的值不一致,所以把hvals的值进行降序。 二、方法   主要用到PHP的 array_multisort — 对多个数组或多维数组进行排序 $unread_notify = $this ->redis->hvals(' ushark :unread:notify:3' ); foreach ( $unread_notify as & $val ) { $val = json_decode( $val , true ); } $time = array_column( $unread_notify , 'newest_time' ); array_multisort ( $time , SORT_DESC, $unread_notify ); !!! 关键 !!! print_r ( $unread_notify ); 来源: oschina 链接: https://my.oschina.net/u

【Redis】安装PHP的redis驱动(二)

允我心安 提交于 2021-01-31 23:25:43
windows 1、 redis 扩展库下载地址: https://pecl.php.net/package/redis 。 选择版本后需要选择线程安全版本和非线程安全版本。 查看phpinfo。 Architecture 选项显示PHP是x86还是x64的版本。Thread Safety 显示是否是线程安全版本( disabled表示不是)。 2、下载好的文件把其中php_redis.dll文件拷贝到 PHP 目录下的ext目录中。然后修改 php .ini文件,增加下面的代码。并重启服务器。 extension=php_redis.dll 3、在phpinfo种看到redis信息则说明安装成功 Linux 安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动:下载地址为: https://github.com/phpredis/phpredis/releases 。 PHP安装redis扩展 以下操作需要在下载的 phpredis 目录中完成: $ wget https: // github.com/phpredis/phpredis/archive/2.2.4.tar.gz $ cd phpredis-2.2.7 # 进入

Why should I close or keep Redis connections open?

我的梦境 提交于 2020-12-26 07:21:09
问题 I'm using Redis in a PHP project. I use phpredis as a client. Sometimes, during long CLI-scripts, I experience PHP segmentation faults. I've experienced before that phpredis has problems when the connection times out. As my Redis config is configured to automatically close idle connections after 300 seconds, I guess that causes the segmentation fault. In order to be able to choose whether to increase the connection timeout or default it to 0 (which means "never timeout"), I would like to know

用Redis实现用户积分排行榜

坚强是说给别人听的谎言 提交于 2020-08-17 05:23:13
排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。 一般排行榜都是有实效性的,比如“用户积分榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了。 首先,来个“今日积分榜”吧,排序规则是今日用户新增积分从多到少。 那么用户增加积分时,都操作一下记录当天积分增加的有序集合。 假设今天是 2018 年 04 月 01 日,UID 为 1 的用户因为某个操作,增加了 8 个积分。 Redis 命令如下: ZINCRBY rank:20180401 8 1 假设还有其他几个用户也增加了积分: ZINCRBY rank:20180401 1 2 ZINCRBY rank:20180401 10 3 看看现在有序集合 rank:20180401 中的数据(withscores 参数可以附带获取元素的 score): ZRANGE rank:20180401 0 -1 withscores 1) "2" 2) "1" 3) "1" 4) "8" 8) "3" 6) "10" 按照分数从高到低,获取 top10: ZREVRANGE rank:20150401 0 9 withscores 1) "3" 2) "10" 3) "1" 4) "5" 5) "2" 6) "1" 因为只有三个元素

PHP操作Redis

别等时光非礼了梦想. 提交于 2020-08-12 08:47:35
目录 基本指令 获取所有的key(keys) 判断键对应值的类型(type) 删除缓存项(del) 设置有效期(expire,expireAt) 获取有效期(ttl) 检测缓存项是否存在(exists) 查看当前数据库key的数量(dbSize) 清空当前数据库(flushDB) 清空所有数据库(flushAll) 字符串(string)类型 设置(set) 设置并指定过期时间(setex) 获取(get) 增加(incr, incrBy) 减少(decr, decrBy) 追加(append) 获取长度(strLen) 字符串截取(getRange) 列表(list)类型 将元素压入链表(lPush) 在某个位置插入新元素(lInsert) 设置某个元素的值(lSet) 获取列表元素个数(lLen) 获取下标对应的元素(lIndex) 获取某个选定范围元素集(lRange) 从列表左侧弹出数据(lPop) 根据值移除元素(lRem) 集合(set)类型 添加元素到集合(sAdd) 随机获取一个元素(sPop) 删除集合里指定的值(sRem) 遍历集合(sScan) 获取所有成员(sMembers) 获取集合元素个数(sCard) 并集(sUnion),差集(sDiff),交集(sInter) 有序集合(zset)类型 添加元素(zAdd) 元素分值增减(zIncrBy)

php7.2安装redis扩展

不打扰是莪最后的温柔 提交于 2020-08-11 12:24:49
centos7 以上版本php7.2安装redis扩展,使php能和redis进行通信。 一、使用oneinstack安装php7.2 二、下载php7的phpredis扩展库 php官网下载redis扩展页面:http://pecl.php.net/package/redis wget http://pecl.php.net/get/redis-4.0.2.tgz 三、解压phpredis扩展库 tar -xzvf redis-4.0.2.tgz cd redis-4.0.2 四、通过phpize生成编译configure配置文件 [root@zixuephp redis-4.0.2]# /mnt/php7/bin/phpize Configuring for: PHP Api Version: 20170718 Zend Module Api No: 20170718 Zend Extension Api No: 320170718 五、进行编译前的配置 ./configure --with-php-config=/mnt/php7/bin/php-config 六、编译和安装 make && make install 七、修改配置文件 在php.ini增加扩展extension=redis.so vim php.ini #文件尾增加下面代码 extension=redis

PHP-redis中文文档(相关)

前提是你 提交于 2020-05-04 05:28:56
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/owlient/phpredis(支持redis 2.0.4) Redis::__construct构造函数 $redis = new Redis(); connect, open 链接redis服务 参数 host : string,服务地址 port : int,端口号 timeout : float,链接时长 (可选, 默认为 0 ,不限链接时间) 注: 在redis.conf中也有时间,默认为300 pconnect, popen 不会主动关闭的链接 参考上面 setOption 设置redis模式 getOption 查看redis设置的模式 ping 查看连接状态 get 得到某个key的值(string值) 如果该key不存在,return false set 写入key 和 value(string值) 如果写入成功,return ture setex 带生存时间的写入值 $redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL. setnx 判断是否重复的,写入值 $redis->setnx

Linux部署Redis及PHP-redis扩展

大城市里の小女人 提交于 2020-04-18 05:13:10
Redis是一个key-value存储系统,属于我们常说的NoSQL。它遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它常用在缓存、队列、Pub/Sub、计数统计、排行榜、投票与排序等场景。 本文介绍如何在CentOS7上安装redis,以及让PHP支持redis的php-redis扩展库。 安装Redis Redis官方下载地址:http://redis.io/download,下载最新稳定版本。 当前稳定版本是4.0.9,下载并安装: 1 $ wget http: // download.redis.io/releases/redis-4.0.9.tar.gz 2 $ tar -zxvf redis- 4.0 . 9 .tar.gz 3 $ mv redis- 4.0 . 9 /usr/local/ redis 4 $ cd /usr/local/ redis 5 $ make 6 $ make install make完后,在redis-4.0.9目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下: 启动redis服务 1 $ cd src 2 $ ./redis-server 注意这种方式启动redis 使用的是默认配置