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的相关内容了!