设置值 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除了是我们的字符串可以是我们的数字
- 计数器
- 统计多单位的数量
- 粉丝数
- 对象缓存存储