redis String常用命令

96 阅读1分钟

设置值 set key1 v1

获得值 get key1

获取字符串长度 strlen key1

初始浏览量为0 set views 0

自增1、浏览量1 incr views

自减1,浏览量又变为0 decr views

可以设置步长,指定增量

  • incrby 10
  • decr views 5

字符串范围 range\

  • 截取字符串坐标为0-3的 getrange 0 3
  • 截取所有的字符 getrange 0 -1
  • 替换指定位置的字符 setrange key 1 xx(将坐标1字符的替换成xx)

设置过期时间 settex(set with expire)

当key不存在再设置(在分布式锁中会常常使用!) setnx(set if not exist)

settex key4 30 "hello" //设置30秒后过期

同时设置多个key,value
127.0.0.1:6379> mset k1 v1 k2 v2

同时获得多个key的value值、 127.0.0.1:6379> mget k1 k2 v2

msetnx是一个原子性的操作,要么一起成功,要么一起失败
msetnx k1 v1 k3 v3 (因为k1已经存在,所以不会将k3 set进数据库)

对象,设置一个user:1 对象 值为json字符来保存一个对象
set user:1{name:zhangsan,age:13}

这里的key是一个巧妙的设计: user:{id}"{filed} 如此设计在redis是完全ok的
127.0.0.1:6379> mset user:1 zhangsan user:1:age 12
OK

先get后set 如果不存在值则返回nil
getset db reids
127.0.0.1:6379> getset db redis (nil)
如果存在值,则获得原来的值,并设置新的值
127.0.0.1:6379> getset db redis1 "redis"

String类似的使用场景:value除了是我们的字符串可以是我们的数字

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储