1、字符串(string)
string是redis最基本的类型,一个key对应一个value。
redis的string可以包含任何数据。包括jpg图片或者序列化的对象。
单个value值最大上限是1G字节, 如果只用string类型,redis就可以被看作加上持久化特性(服务器重启之后,数据不丢失)的memcache
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
二进制安全是指,在传输数据时,保证二进制数据的信息安全,也就是不被篡改、破译等,如果被攻击,能够及时检测出来
二进制安全特点:
1、编码、解码发生在客户端完成,执行效率高
2、不需要频繁的编解码,不会出现乱码
1.1 String命令
(2)get
获取key对应的string值,如果key不存在返回 nil,
语法:get 键值
(3)incr
increment 对key的值做加加操作,并返回新的值,每执行一次值加1,值类型要是数据类型。
语法:incr key
decr与incr操作一致,就是减一操作
- type key // 查看数据类型
GETRANGE key start end
用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)
删除语法:
DEL KEY_Name
删除指定的KEY,如果存在,返回值数字类型。
自增/自减:
INCR KEY_Name
Incr 命令将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作
自增:INCRBY KEY_Name 增量值
Incrby 命令将 key 中储存的数字加上指定的增量值
自减:DECR KEY_NAME 或 DECYBY KEY_NAME 减值
decR 命令将 key 中储存的数字减1
字符串拼接:APPEND KEY_NAME VALUE
Append 命令用于为指定的 key 追加至未尾,如果不存在,为其赋值
1.2 应用场景:
-
- 1、String通常用于保存单个字符串或JSON字符串数据
- 2、因String是二进制安全的,所以你完全可以把一个图片文件的内容作为字符串来存储
- 3、计数器(常规key-value缓存应用。常规计数: 微博数, 粉丝数)
INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果。假如,在某种场景下有3个客户端同时读取了mynum的值(值为2),然后对其同时进行了加1的操作,那么,最后mynum的值一定是5。
不少网站都利用redis的这个特性来实现业务上的统计计数需求。