1.string类型数据的基本操作
添加 / 修改数据:set key value
获取数据:get key
删除数据:del key
添加 / 修改多个数据:mset key value key1 value1
获取多个数据:mget key key1
追加信息到原始数据后边(不存在时则添加):append key value
2.string类型 增减操作
设置数据增加指定范围的值:incr key 默认每次加1 | incrby key value 每次新增value
设置数据减少指定范围的值:decr key | decrby key value 跟新增是一回事
应用场景
控制数据库表主键id,为数据库表提供主键生成策略,保证数据表主键的一致性。
3.string类型 时效操作
设置过期时间:setex key seconds value
应用场景
实现限制时间投票功能:例如一个微信一个小时可以投一次实现热点信息:例如电商行业热门商品、新闻网站热门新闻
4.string类型的操作配置
27.0.0.1:6379> set key1 v1 # 设置值
127.0.0.1:6379> get key1 # 获得值
127.0.0.1:6379> keys * # 获得所有的key
127.0.0.1:6379> EXISTS key1 # 判断某一个key是否存在
127.0.0.1:6379> APPEND key1 “hello” # 追加字符串,如果当前key不存在,就相当于setkey
127.0.0.1:6379> get key1
127.0.0.1:6379> STRLEN key1 # 获取字符串的长度!
127.0.0.1:6379> APPEND key1 “sj”
127.0.0.1:6379> STRLEN key1
127.0.0.1:6379> get key1
# i++
#步长 i+=
27.0.0.1:6379> set views 0 # 初始浏览量为0
127.0.0.1:6379> get views
127.0.0.1:6379> incr views # 自增1 浏览量变为1
127.0.0.1:6379> incr views
127.0.0.1:6379> get views
127.0.0.1:6379> decr views # 自减1 浏览量-1
127.0.0.1:6379> decr views
127.0.0.1:6379> decr views
127.0.0.1:6379> get views
127.0.0.1:6379> INCRBY views 10 # 可以设置步长,指定增量!
127.0.0.1:6379> INCRBY views 10
127.0.0.1:6379> DECRBY views 5
# 字符串范围 range
127.0.0.1:6379> set key1 “hello,sj” # 设置 key1 的值
127.0.0.1:6379> get key1
127.0.0.1:6379> GETRANGE key1 0 3 # 截取字符串 [0,3]
127.0.0.1:6379> GETRANGE key1 0 -1 # 获取全部的字符串 和 get key是一样的
# 替换!
127.0.0.1:6379> set key2 abcdefg
127.0.0.1:6379> get key2
127.0.0.1:6379> SETRANGE key2 1 xx # 替换指定位置开始的字符串!
127.0.0.1:6379> get key2
# setex (set with expire) # 设置过期时间
# setnx (set if not exist) # 不存在再设置 (在分布式锁中会常常使用!)
127.0.0.1:6379> setex key3 30 “hello” # 设置key3 的值为 hello,30秒后过期
127.0.0.1:6379> ttl key3
127.0.0.1:6379> get key3
127.0.0.1:6379> setnx mykey “redis” # 如果mykey 不存在,创建mykey
127.0.0.1:6379> keys *
127.0.0.1:6379> ttl key3
127.0.0.1:6379> setnx mykey “MongoDB” # 如果mykey存在,创建失败!
127.0.0.1:6379> get mykey
#mset
#mget
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 # 同时设置多个值
127.0.0.1:6379> keys *
127.0.0.1:6379> mget k1 k2 k3 # 同时获取多个值
127.0.0.1:6379> msetnx k1 v1 k4 v4 # msetnx 是一个原子性的操作,要么一起成功,要么一起失败!
127.0.0.1:6379> get k4
# 对象
set user:1 {name:zhangsan,age:3} # 设置一个user:1 对象 值为 json字符来保存一个对象!
# 这里的key是一个巧妙的设计: user:{id}:{filed} , 如此设计在Redis中是完全OK了!
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2
127.0.0.1:6379> mget user:1:name user:1:age
getset # 先get然后在set
127.0.0.1:6379> getset db redis # 如果不存在值,则返回 nil
127.0.0.1:6379> get db
127.0.0.1:6379> getset db mongodb # 如果存在值,获取原来的值,并设置新的值
127.0.0.1:6379> get db
5.string类型的应用场景
微博大V主页高频的访问,对于粉丝数、关注数、微博数都需要时时更新。这个就属于高频信息了,我们就可以使用redis的string类型来解决在redis中为大V设定用户信息,以用户主键和属性为键值,以下为实现案例。
在这里需要简单的说一下key的命名规则:以表名+主键+主键值+字段 :字段值。以这样的规则来命名就可以很好的来管理我们的键值。
我们还可以使用另外一种方式来实现,就是键后边直接跟一个结构,例如
以上的俩种方式都是可以实现的,只是第一种可以很方便的对任意一个值进行管理,第二种是改一个都得改一次,看业务场景,定时刷新就行。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
天热更的比较少,和儿子一起过了半个暑假,担心大家没文章看,推荐几个更新比我勤快的优质产品号吧。 他们当中有深耕产品方向的大牛,有专注大数据领域的大神,还有从产品走向创业的大佬……我关注他们也都有一段时间了,内容质量非常的高,附带了每人自己精选的一篇文章推荐给大…