文章目录
前言
- Redis定位与特性
- Redis服务端安装与启动
- Redis客户端连接
- Redis基本数据类型与应用场景
一、SQL与NOSQL
1 .SQL特点
- 行存储,二维
- 结构化,Schema
- 表与表之间的关联,Relationship
- SQL语法
- ACID(酸)
2. NOSQL特点
- 非结构化的数据
- 数据与数据没有关联
- BASE(碱)最终一致性
- 海量数据存储、高并发读写
- 支持分布式:数据分片、扩缩容简单
3. NOSQL存储
- KV存储
- 文档存储 MongoDB
- 列存储 HBase
- 图存储(Graph) Neo4j
- 对象存储
- XML存储
二、Redis数据类型与应用
1. String常见操作
set
单个保存
set a 123
get
单个查询
get a
nx
只有当a不存在的话,才进行保存(也就是只做保存,不做修改,a存在,则保存失败)
set a 123 nx
xx
只有当a存在的话,才进行修改(也就是只做修改,不做保存,a不存在,则修改失败)
set a 123 xx
mset
批量保存
mset aaa 123 bbb 456
mget
批量查询
mget aaa bbb
strlen
获取值的长度
strlen a
append
字符串的拼接
append a 3
getrange
获取字符串某个范围的值(index从0开始,-1 表示结尾)
getrange a 1 1
incr
如果字符串为整数,可通过incr进行自增
incr a
decr
如果字符串为整数,可通过decr进行自减
decr a
incrby
如果字符串为整数,可通过incrby增加指定长度
incrby a 10
decrby
如果字符串为整数,可通过decrby减少指定长度
decrby a 10
incrbyfloat
如果字符串为小数,可通过incrbyfloat进行加减
set a 1.1
incrbyfloat a 2.2
incrbyfloat a -2.2
2. String位操作
setbit
保存a的值为a
set a a
小写字母a的ASCII为01100001,小写字母b的ASCII为01100010,通过位操作将a修改位b
修改a第七位二进制数为1
setbit a 6 1
修改a第八位二进制数为0
setbit a 7 0
获取a的值为b
get a
getbit
获取位值(获取a第七位的二进制数)
getbit a 6
bitcount
计算字符串中有多少个1/
bitcount a
bitpos
获取第一个二进制位为0或1的位置
bitpos a 1
bitpos a 0
bitop
对key1 … keyn求逻辑与,将结果保存到key中
bitop and key key1 ... keyn
对key1 … keyn求逻辑或,将结果保存到key中
bitop or key key1 ... keyn
对key1 … keyn求逻辑异或,将结果保存到key中
bitop xor key key1 ... keyn
对key1求逻辑非,将结果保存到key中
bitop not key key1
3. String 应用场景
- 缓存
- 分布式Session
- set nx ex 分布式锁
- incr 全局ID
- incr 计数器
- incr 限流
- 位操作 统计