简介string类型是Redis最基本的数据类型
string 数据结构是简单的key-value类型,value其不仅是string,也可以是数字,是包含很多种类型的特殊
类型,
string类型是二进制安全的。意思是redis的string可以包含任何数据。 比如序列化的对象进行存储,比如
一张图片进行二进制存储,比如一个简单的字符串,数值等等。
String命令
赋值语法:
- SET KEY_NAME VALUE: (说明:多次设置name会覆盖) (Redis SET 命令用于设置给定 key 的值。如果 key 已经存储值, SET 就覆写旧值,且无视类型)
- SETNX key1 value: (not exist) 如果key1不存在,则设值 并返回1。如果key1存在,则不设值并返回0; (解决分布式锁 方案之一,只有在 key 不存在时设置 key 的值。Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值)
- SETEX key1 10 lx : (expired) 设置key1的值为lx,过期时间为10秒,10秒后key1清除(key也清除)
- SETRANGE key range value: 替换字符串 setrange key1 10 "test"
取值语法:
-
GET KEY_NAME :Redis GET命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值 不是字符串类型,返回一个错误。
-
GETRANGE key start end :用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)
-
GETBIT key offset :对 key 所储存的字符串值,获取指定偏移量上的位(bit)
-
GETSET KEY_NAME VALUE :Getset 命令用于设置指定 key 的值,并返回 key 的旧值,当 key 不存在时,返回 nil
-
STRLEN key :返回 key 所储存的字符串值的长度
删值语法: -
DEL KEY_Name :删除指定的KEY,如果存在,返回值数字类型。
批量语法 -
批量写:MSET k1 v1 k2 v2 ... 一次性写入多个值
-
批量读:MGET k1 k2 k3
-
GETSET name value :一次性设值和读取(返回旧值,写上新值)
自增/自减: -
INCR KEY_Name :Incr 命令将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作
-
INCRBY KEY_Name 增量值: Incrby 命令将 key 中储存的数字加上指定的增量值
-
DECR KEY_NAME 或 DECYBY KEY_NAME 减值 :DECR 命令将 key 中储存的数字减1 (注意这些 key 对应的必须是数字类型字符串,否则会出错)
-
字符串拼接:APPEND KEY_NAME VALUE :Append 命令用于为指定的 key 追加至未尾,如果不存在,为其赋值
-
字符串长度 :STRLEN key
应用场景
- 1、String通常用于保存单个字符串或JSON字符串数据
- 2、因String是二进制安全的,所以你完全可以把一个图片文件的内容作为字符串来存储
- 3、计数器(常规key-value缓存应用。常规计数: 微博数, 粉丝数)
INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、 DECRBY等指令来实现原子计数的效果。假如,在某种场景下有3个客户端同时读取了mynum的值
(值为2),然后对其同时进行了加1的操作,那么,最后mynum的值一定是5。 不少网站都利用
redis的这个特性来实现业务上的统计计数需求
网友评论