一 String介绍

string是redis最基本的类型,一个key对应一个value.
        string 类型是二进制安全的。意思就是redis的string可以包含任何数据。比如jpg或者序列化的对象。
        string类型 是redis最基本的数据类型,一个键最大能存储512MB。

二进制安全是指,在传输数据时,保证二进制书库的信息安全,也就是不被篡改,破译等,如果被攻击,
能够被及时检测出来。

二进制安全特点:
1:编码,解码发生在客户端完成,执行效率高。
2:不需要频繁的编解码,不会出现乱码。
 

二 String命令

linux二进制部署redis redis存储二进制数据_字符串

set key value
setnx key value //解决分布式锁方案之一 只有在key不存在时设置key的值。
get key 
del key   key存在时删除

linux二进制部署redis redis存储二进制数据_redis_02

dump key 序列化给定key,并返回被序列化的值

exists key 检查key是否存在

expire key seconds 为给定的key设置过期时间

ttl key 以秒为单位,返回给定key的剩余生存时间
返回值:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。

persist key 移除key的过期时间,key将持久化保持

linux二进制部署redis redis存储二进制数据_序列化_03

keys pattern 查找所有符合给定模式(pattern)的key
pattern 通配符:
* 代表所有
? 表示代表一个字符

linux二进制部署redis redis存储二进制数据_redis_04

move key db 将当前数据库中的 key移动到给定的数据库db中
type key 返回key所存储的值的类型
getrange key start end 获取指定长度的字符串
mget key1 [key2..]  获取多个key的值
getset key_name value getset命令用于设置制定key的值,并返回key的旧值,当key不存在事,返回nil
strlen key 
append key value
incr key   incr命令将key中存储的数字值增1.如果key不存在,那key的值会被初始化
为0,然后再执行incr操作
incrby key 增量值 incrby命令将key中存储的数字加上指定的增量值
decr key 减1 
decrby key 减值

linux二进制部署redis redis存储二进制数据_序列化_05

三 String应用场景

1、String通常用于保存单个字符串或JSOM字符串数据

2.因string是二进制安全的,所以你完全可以把一个图片文件的内容作为字符串来存储

3.计数器(常规key-value缓存应用。常规计数:微博数,粉丝数)

INCR等指令本身就具有原了操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果。
        假如,在某种场景下有3个客户端同时读职了mynum的自(伯力2),然后对其同时进行了加1的操作,那么,最后mynum的值一定是5.
不少冈站都利用redis的这个特性来实现业务上的统计计数需求。