Redis由来
- 08 意大利 antirez 统计网站访问信息,使用 mysql(硬盘读写)进行记录。随着数据量大,产生性能瓶颈。产生将数据存储在内存中的想法。
- 内存读写要快很多,需要添加持久化功能(数据备份)。
- 全称 remote dictionary service
- 端口 6379,(嘲笑歌星,暗语,愚蠢的意思)
Redis特性
- 数据操作在内存,速度快
- 命令执行的单线程
- 结构简单,key-value
- Redis keys的最大值:512M
- 功能丰富 持久化
- io的多路复用(阻塞性io,非阻塞io,多路复用)
Redis有16个库,配置文件可配置最多16个(database 16)
配置文件 redis.conf
set huihui 666
//设置添加key-value
select 8
//切换到库8
库数据是隔离的
可以做分库处理,不建议使用Redis数据库进行分库
flush
//全库清空(所有库)
get huihui
//查询
rename huihui huihui1
//重命名
keys *
//查询所有,不建议使用
expire huyihui 10
//设置过期时间
del huihui
//删除
Redis常见数据类型以及应用场景解析
Redis一共8大数据类型,常用的5种。
String
value String 可以存number float bits等等
strlen huihui
//获取字符长度
getrange huihui 0 5
//截取字符串
set intkey 1
get intkey
incr intkey
incr——》主键
set f 2.6
incrbyfloat f 7.3
单线程 不用担心并发
setnx值存在的时候就不会成功——》分布式锁
应用场景
incr 主键 分布式ID 自增 统计数据
setnx 分布式锁
设置时间跟设置锁是两个命令 原子性 并发问题 必须一起执行
lua脚本 脚本语言 狗皮膏药,保证多个redis命令的原子性