Redis——String

Redis——String

Redis字符串类型是可以与Redis键关联的最简单的值类型。它是Memcached中唯一的数据类型,因此对于新手来说,在Redis中使用它也是非常自然的。

> set strkey strvalue
> get strkey
"strvalue"

通过set命令设置值,通过get命令获取值。如果key存在的话会被重新覆盖。value可以是任意类型的字符串(包括二进制数据),例如可以在value中存储一个jpg格式的图片,但是value不能大于512MB。

nx 和 xx 参数

在执行set命令时可以使用一些参数,这里说一下nx和xx:

  • nx: 如果执行时有此参数表示只有key不存在时才可以设置成功,不然不会成功

    > set strkey newvalue nx
    (nil)
    

    因为strkey已经存在了,所i有设置失败

    > set newkey newvalue nx
    OK
    

    设置不存在的值会成功

  • xx: 此命令与nx刚好相反,如果key存在才可以设置成功,如果不存在则设置失败。使用方式与nx相同,在命令结尾追加。

怎么记忆好一点呢?这里我的方法是把俩个字母理解为一个前提和一个动作,第一个字母代表状态,第二个表示执行(e__x__ecute),第一个如果是n就说明当key __N__ull 时可以执行,如果是 E__x__iste则表示key存在时可以执行。

原子增量

使用命令 INCR 可以实现将字符串解析为整数,然后对其递增一,最后将获得的值赋值为新值。

> set newkey 100
> incr newkey
(integer) 101

除了 INCR 外类似的有__INCRBY、DECR、DECRBY__,INCRBY 也是递增,只是多了一个步长的设置。DECR 和 DECRBY 都是递减,前者递减1,后者根据步长递减。原子递增意味着什么?多个客户端不会同时竞争同一个key。

设置和获取多个值

上面的 set 和 get 命令都是对单个key进行设置和获取,如果想同时设置多个值和获取多个值就要用到 mset 、mget 命令了,例如:

> mset strkey 100 mykey 100
OK
> mget mykey strkey
1) "100"
2) "100"

del 、exists、type

  • del:删除key
  • exists:查询对应key是否存在
  • type:key的类型

设置key的过期时间

expire

> set strkey strvalue
> expire strkey 10

格式:expire key seconds。注意,通过expire设置的是以秒为单位的过期时间。可以通过对应的 ttl 命令查看key的剩余时间。

> ttl strkey

pexpire

该命令的使用方法与expire相同,只是它对应的是毫秒,同样,pttl对应的是查看key剩余的毫秒数

以上俩条命令都可以在设置key时直接设置,如下:

> set strkey strvalue ex 10
> set strkey strvalue px 10000

以上俩条命令都是将key设置10秒后过期,需要注意的时在redis里对过期的精确度都是以毫秒为单位的,不管设置是ex还是px

persist

persist 的中文意思是——保持、持续存在。所以它是在你执行了设置过期时间后用来取消过期时间的,取消后永不过期。

以上就是关于Redis——String的相关内容了!

posted @ 2021-03-15 10:46  胡海龙  阅读(66)  评论(0)    收藏  举报
www.huhailong.vip