PHP的方法和代码示例在redis哈希和zset型数据操作
1、HSET
描述:该领域的哈希表中的键的值设置为值。如果不存在,一个新的哈希表创建和执行的HSET。如果哈希表中已经存在的领域,旧的值将被覆盖。
参数:键字段值
返回值:如果字段是哈希表中的一个新域,并且值设置成功,返回1。如果字段中的哈希表已经存在,旧值已经是新值,返回0。
2、hsetnx
描述:该领域的哈希表中的键的值设置为值,当且仅当域字段不存在。如果域字段已经存在,该操作是无效的。如果不存在,一个新的哈希表的创建和执行hsetnx命令。
参数:键字段值
返回值:设置成功,返回1。如果给定域已经存在且没有执行操作,返回0。
3、hget
描述:返回哈希表键中给定域字段的值。
参数:键字段
返回值:给定域的值。当给定域不存在或给定的键不存在时,返回0。
4、hmset
描述:在同一时间,多个字段值(域值)对设置哈希表的关键。这个命令会覆盖现有的域哈希表中的关键。如果不存在,一个空的哈希表的创建和执行hmset操作。
参数:键字段值{字段值…}
返回值:如果命令成功,返回OK。当键不是哈希表(hash)类型时,返回错误。
5、hmget
说明:返回一个或多个域的哈希表中的键的值。如果一个给定的域不在哈希表中存在,则无返回值。因为非存在的关键是视为一个空的哈希表,一个非的hmget操作返回一个表,只有存在的关键无价值的。
参数:键字段{…}
返回值:包含多个给定域相关值的表,表值的顺序与给定域参数的请求顺序相同。
6、hgetall
描述:返回哈希表键中的所有字段和值。在返回值中,域(值)的值后面是每个域名(字段名),因此返回值的长度是哈希表大小的两倍。
关键参数:
返回值:以列表的形式返回哈希表的域和域的值。如果键不存在,返回空列表。
7、HDEL
说明:删除哈希表键中的一个或多个指定域,不存在的域将被忽略。
参数:键字段{…}
返回值:已成功删除的域数,不包括被忽略的域。
8,海伦
描述:返回密钥中哈希表域的个数。
关键参数:
返回值:在密钥不存在时哈希表的数目,返回0。
9、hexists
说明:查看给定的域字段是否存在于哈希表密钥中。
参数:键字段
返回值:如果哈希表包含给定域,则返回1。如果哈希表不包含给定域,或键不存在,返回0。
10、hincrby
描述:将增量增量添加到哈希表键中域域的值。增量也可以是负的,相当于减去给定域。
参数:键字段增量
返回值:该hincrby命令执行后,在哈希表中的关键字段值。
11、hkeys
描述:返回哈希表键中的所有字段。
关键参数:
返回值:包含哈希表中所有域的表。当键不存在时,返回一个空表。
12、hvals
描述:返回哈希表键中的所有值。
关键参数:
返回值:包含哈希表中所有值的表。当键不存在时,返回空表。
以上12种方法的代码示例:
复制代码代码如下所示:
< PHP
Redis =新的Redis(美元);
$ redis ->连接('192.168.1.108 ',6379);
$ redis ->删除(测试);
$ redis -> HSET(测试,'key1,你好);
echo redis -> hget(测试,'key1 '); / /结果:你好
;
$ redis -> hsetnx(测试,'key1',‘');
echo redis -> hget(测试,'key1 '); / /结果:你好
$ redis ->删除(测试);
$ redis -> hsetnx(测试,'key1',‘');
;
echo redis -> hget(测试,'key1 '); / /结果:世界
echo redis ->海伦(测试'); / /结果:1
var_dump($ redis -> HDEL(测试,'key1 ')); / /结果:bool(真的)
$ redis ->删除(测试);
$ redis -> HSET(测试',' ','X');
$ redis -> HSET(测试,B,Y);
$ redis -> HSET(测试、C、Z);
print_r($ redis -> hkeys(测试)); / /结果:阵列({ 0 } = >一{ 1 } = { 2 } = > > B C)
print_r($ redis -> hvals(测试)); / /结果:阵列({ 0 } = { 1 } = > > x y { 2 } = > z)
print_r($ redis -> hgetall(测试)); / /结果:({一} = >数组x {黑} = > y { } = > z)
var_dump($ redis -> hexists(测试,)); / /结果:bool(真的)
$ redis ->删除(测试);
echo redis -> hincrby(测试',' ',3); / /结果:3
echo redis -> hincrby(测试',' ',1); / /结果:4
$ redis ->删除(测试);
var_dump($ redis -> hmset(测试,阵列('name' = > 'tank ','sex= >人))); / /结果:bool(真的)
print_r($ redis -> hmget(测试,阵列('name','sex '))); / /结果:({姓名} = >系列坦克{性} = >的人)
>
13、Zadd
描述:
添加一个或多个元素,如果该元素已经存在,更新其评分值
虽然有序集合是有序的,但它也是一个不能重复元素的集合,而重复元素的添加只会
更新原始元素的得分值。
参数:
关键
评分:双
值:字符串
返回值:1或0
14、zrange
描述:在一个特定的范围内获取排序元素,第一个元素为0,第二个元素为1。- 1表示最后一个元素,- 2表示倒数第二个元素。
参数:
关键
开始:长
结束:长
初中:bool = false
返回值:数组
15、ZDelete,zrem
说明:从有序集合中删除指定成员。
参数:
关键
成员
返回值:1或0
16、zrevrange
描述:返回命令设置的关键元素的指定的时间间隔。这些元素排列在高得分要低,同分的元素,他们将被安排在降字典顺序。该命令类似于zrange,但命令中的元素的顺序是不同于以往的。
参数:
关键
开始:长
结束:长
初中:bool = false
返回值:数组
17、zrangebyscore,zrevrangebyscore
描述:在键的有序集合中返回MIN和马克斯之间的所有分数(元素的HA分数等于min或max)。元素按从低到高的顺序排列。如果元素的分数相同,则按字典的顺序排列。
可选的选项,限制,可以得到一定范围内的匹配元素。如果偏移较大,有序集需要遍历的元素之前被退回,从而增加时间复杂度O(n)。可选的选项,积分,可以返回元素的得分而返回的元素,这是因为使用2版。
参数:
关键
开始:字符串
结束:字符串
选项:阵列
返回值:数组
18、zcount
描述:返回与最小和max对应的键的有序集合中介之间的元素数。
参数:
关键
开始:字符串
结束:字符串
返回值:数组长度
19、zremrangebyscore,zreleterangebyscore
描述:删除最小最大最小之间(包括端点)的有序集合对应的小学分。由于2.1.6版本,该区间端点的最大和最小的可以排除在外,这是对zrangebyscore语法相同。
参数:
关键
开始:双或+或字符串
结束:双或+或字符串
返回值:删除元素的数量
20、zremrangebyrank,zdeleterangebyrank
描述:删除命令设置的键所对应的等级值的开始和停止之间的所有元素。开始和停止都是从0开始的,既可以是负的。当指标值为负,这表明偏移值开始在有序集与得分最高值的元素。例如,1代表着最高的一个元素,和2个代表与子高得分的一个元素,等等。
参数:
关键
开始:长
结束:长
返回值:删除元素的数量
21、zsize,zcard
描述:返回与键对应的有序集合中存储的元素的数量。
关键参数:
返回值:元素的个数
22、Z评分
描述:返回键的有序集合中成员的得分值。如果成员在有序集合中不存在,则返回null。
参数:键成员
23、Zrank,zrevrank
描述:返回成员元素的索引值的有序集合对应的密钥,和元素都是从低到高排列根据得分排名值(或指数)是从0开始,这意味着分数最低的价值元素的等级值为0,使用zrevrank,你可以得到等级(或指数)从高到低的元素。
参数:键成员
返回值:数字
24、zincrby
在有序的键所对应的增量添加成员要素的小学分。如果指定的成员不存在,元素将被添加,和其得分初始值增加。如果不存在,一个新的有序表将与成员的唯一元素创建的。如果键的值不是一个有序的列表,会有一个错误。指定的得分值应该是一个字符串,可以转换为数字值,得到一个双精度浮点数字。同时,您也可以提供一个负的值,这将降低评分值。
参数:键值成员
返回值:字符类型数据
25、zunion
描述:按键对应的一组numkeys序集和存储在目标的结果
参数:keyoutput arrayzsetkeys arrayweights aggregatefunction
返回值:联合数组
26,该
描述:该键对应的numkeys有序集计算交叉并将结果存储在目的地
参数:keyoutput arrayzsetkeys arrayweights aggregatefunction
返回值:交集数组
13-26代码实例:
复制代码代码如下所示:
Redis =新的Redis(美元);
$ redis ->连接('192.168.1.108 ',6379);
$ redis ->删除(测试);
$ redis -> Zadd(测试,1,'val1);
$ redis -> Zadd(测试,0,'val2);
$ redis -> Zadd(测试,3,'val3);
print_r($ redis -> zrange(测试,0,1)); / /结果:阵列({ 0 } = > val2 { 1 } = { 2 } = > > val1 VAL3)
$ redis -> ZDelete(测试,'val2);
print_r($ redis -> zrange(测试,0,1)); / /结果:阵列({ 0 } = { 1 } = > > val1 VAL3)
$ redis -> Zadd(测试,4,'val0);
print_r($ redis -> zrevrange(测试,0,1)); / /结果:阵列({ 0 } = { 1 } = > > val0 VAL3 { 2 } = > val1)
print_r($ redis -> zrevrange(测试,0,1,真)); / /结果:阵列({ } { } = 4 val0 VAL3 = > 3 { val1 } = 1)
;
$ redis -> Zadd(关键的,0,'val0);
$ redis -> Zadd(关键的,2,'val2);
$ redis -> Zadd(关键的,10,'val10);
print_r($ redis -> zrangebyscore(关键,0, 3,阵列('limit ' =阵列(1, 1),'withscores ' = true))); / /结果:阵列({ } = 2 val2)
print_r($ redis -> zrangebyscore(关键,0, 3,阵列('limit ' =阵列(1, 1)))); / /结果:阵列({ 0 } = val2)
echo redis -> zcount(关键',0, 3); / /结果:2
$ redis -> zremrangebyscore(关键',0, 3);
print_r($ redis -> zrange(关键的,0,1)); / /结果:阵列({ 0 } =模型)
echo redis -> zsize(关键的); / /结果:1
$ redis -> Zadd(关键的,2.5,'aaaa);
echo redis -> ZSCORE(关键,'aaaa '); / /结果:2.5
echo redis -> Zrank(关键,'aaaa '); / /结果:0
echo redis -> zrevrank(关键,'aaaa '); / /结果:1
$ redis ->删除(关键的);
echo redis -> zincrby(关键的,2,'aaaa '); / /结果:2
echo redis -> zincrby(关键的,1,'aaaa '); / /结果:3
$ redis ->删除(关键的);
$ redis ->删除(测试);
$ redis -> Zadd(关键的,0,'val0);
$ redis -> Zadd(关键的,1,'val1);
$ redis -> Zadd(关键的,4,'val2);
$ redis -> Zadd(测试,2,'val2);
$ redis -> Zadd(测试,3,'val3);
$ redis -> zunion('k01,阵列(关键的测试));
print_r($ redis -> zrange('k01',0,1)); / /结果:阵列({ 0 } = { 1 } = > > val0 val1 { 2 } = > VAL3 { 3 } = > val2)
$ redis -> zunion('k03,阵列(关键的测试),阵列(5, 1));
print_r($ redis -> zrange('k03',0,1)); / /结果:阵列({ 0 } = { 1 } = > > val0 VAL3 { 2 } = > val1 { 3 } = > val2)
$ redis ->该('k02,阵列(关键的测试));
print_r($ redis -> zrange('k02',0,1)); / /结果:阵列({ 0 } = val2)
>