1.1 Redis字符串(String)
- String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应个value。
- String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
- String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M
1.1.1 常用命令
set添加键值对
/img/set%E5%9B%BE.png)
- NX:当数据库中key不存在时,可以将key-value添加数据库
- XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
- EX:key的超时秒数
- PX:key的超时毫秒数,与EX互斥
get查询对应键值,
append将给定的追加到原值的末尾
strlen获得值的长度
setnxvalue:只有在key不存在时设置key的值
incr 将key中储存的数字值增1只能对数字值操作,如果为空,新增值为1
decr 将key中储存的数字值减1只能对数字值操作,如果为空,新增值为-1
incrby/decrby <key><步长>将key中储存的数字值增减。自定义步长。
1.1.2原子性,有一个失败则都失败
mset ….同时设置一个或多个key-value对
mget ……同时获取一个或多个value
msetnx …..同时设置一个或多个key-vaue对,当且仅当所有给定key都不存在.
getrange<起始位置><结束位置>获得值的范围,类似java中的substring,前包,后包
java中的substring,前包,后包setrange<起始位置>用value:覆写所储存的字符串值,从<起始位置>开始(索引从0开始)
setex<过期时间>设置键值的同时,设置过期时间,单位秒
getset 以新换旧I设置了新值同时获得旧值
2.原子性
(1)在单线程中,能够在单条指令中完成的操作都可以认为是”原子操作”,因为中
断只能发生于指令之间。
(2)在多线程中,不能被其它进程(线程)打断的操作就叫原子操作。
Redis单命令的原子性主要得益于Redis的单线程。
3.数据结构
/img/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.png)