Redis学习笔记之字符串和哈希命令_站长交流平台 - 站长论坛
登录  /  注册
首页 建站交流 站长赚钱 网站优化(SEO) 站长问题反馈 老站长平台数据 站长问答 网络安全
Redis学习笔记之字符串和哈希命令
查看1050 | 回复1

2020-08-14 13:09

gydtep2002
gydtep2002gydtep2002 楼主 2020-08-14 13:09
只看此人 楼主

字符串

字符串类型是Redis最基础的数据结构。首先键都是字符串类型,而且其他几种数据结构都是在字符串类型基础上构建的,字符串类型的值可以是字符串(简单的字符串、复杂的字符串(JSON、 ))、数字,甚至是二进制(图片、音频、视频),但是值最大不能超过512MB。

1.设置值

set key value [EX seconds|PX milliseconds] [NX|XX] [KEEPTTL]
set命令有几个选项:

ex seconds:为键设置秒级别过期时间。
px milliseconds:为键设置毫秒级别过期时间。
nx:键必须不存在,才可以设置成功,用于添加。
xx:于nx相反,键必须存在,才可以设置成功,用于更新。
keepttl:取消键的过期时间。
除了set选项,Redis还提供了setex和setnx两个命令:

setex key seconds value
setnx key value

它们的作用和ex和nx选项是一样的。

申请阿里云服务时,可以使用2000元阿里云代金券,阿里云官网领取网址:https://dashi.aliyun.com/site/yun/youhui

2.获取值

get key

阿里云服务器1核2G低至82元/年,阿里云官活动网址:https://dashi.aliyun.com/site/yun/aliyun 可以用20代金券,即102-20=82。

3.批量设置值

mset key value [key value ...]

4.批量获取值

mget key [key ...]

5.计数

incr key

incr命令用于对值做自增操作,返回结果分为三种情况:
值不是整数,返回错误。
值是整数,返回自增后的结果。
键不存在,按照值为0自增,返回结构为1。
除了incr自增命令,Redis还提供了decr自减、incrby自增指定数字、decrby自减指定数字、incrbyfloat自增浮点数命令:

decr key
incrby key increment
decrby key decrement
incrbyfloat key increment

哈希

在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},…{fieldN,valueN}}。哈希类型中的映射关系叫做field-value,注意这里的value是指field对应的值,不是键对应的值。

1.设置值

hset key field value

下面为user:1添加一对field-value:

192.168.211.131:7002> hset user:1 name tom
-> Redirected to slot [10778] located at 192.168.211.131:7004
(integer) 1

hset也可以批量设置:

192.168.211.131:7004> hset user:1 dept dba sal 1000
(integer) 2

此外Redis提供了hsetnx命令,它的作用和setnx命令一样,只不过作用域由键变为field。
下面为user:1添加新的一对filed-value

192.168.211.131:7004> hsetnx user:1 mgr jim
(integer) 1

2.获取值

hget key filed

下面操作获取user:1的name域对应的值:

192.168.211.131:7004> hget user:1 name
"tom"

3.删除field

hdel key field [field ...]

hdel会删除一个或多个field,返回结果为成功删除field的个数,例如:

192.168.211.131:7004> hdel user:1 mgr
(integer) 1

4.计算field个数

hlen key

获取user:1的field个数:

192.168.211.131:7004> hlen user:1
(integer) 3

5.批量设置或获取field-value

hmset key field value [field value ...]
hmget key field [field ...]

hmset和hmget分别是批量设置和获取field-value,例如:

192.168.211.131:7004> hmset user:2 name jim dept dba sal 5000 mgr null
OK
192.168.211.131:7004> hmget user:2 name dept sal mgr
1) "jim"
2) "dba"
3) "5000"
4) "null"

6.判断field是否存在

192.168.211.131:7004> hexists key field

user:1包含name域,所以返回结果为1,举例:

192.168.211.131:7004> hexists user:1 name
(integer) 1

7.获取所有field

hkeys key

hkyes命令应该叫hkeys field更为恰当,获取user:1的所有filed:

192.168.211.131:7004> hkeys user:1
1) "name"
2) "dept"
3) "sal

8.获取所有value

hvals key

获取user:1的所有value:

192.168.211.131:7004> hvals user:1
1) "tom"
2) "dba"
3) "1000"

9.获取所有的filed-value

hgetall key

获取user:1所有的field-value:

192.168.211.131:7003> hgetall user:1
-> Redirected to slot [10778] located at 192.168.211.131:7004
1) "name"
2) "tom"
3) "dept"
4) "dba"
5) "sal"
6) "1000"

10.hincrby hincrbyfloat

hincrby key field increment
hincrbyfloat key field increment

hincrby和hincrbyfloat,就像incrby和incrbyfloat命令一样,但是他们的作用域是field。

11.计算value的字符串长度

hstrlen key field

例如user:1 name的value是tom,那么hstrlen的返回结果是3:

192.168.211.131:7004> hstrlen user:1 name
(integer) 3


1条回复
13117513800
gydtep200213117513800 1年前
只看此人 沙发
亦丰科技有限公司拥有庞大多线的机房,安全稳定便捷,为您提供低价高效的服务器租用服务。更是承诺由于亦丰科技的故障导致产品无法正常使用将赔偿100倍故障赔偿时间,请放心选用,欢迎联系询问。联系v13117513800http://www.hzyifeng.com
每日任务
发贴