一、Redis为非关系型数据库
❓我们常见的MySQL、SQLServer都是关系型数据库,那他们之间有什么区别与联系呢?
📕关系型数据库与非关系型数据库的区别(面试题)
解释:
- SQL数据库中的表是有结构的,包括有哪些字段和对字段的约束
- SQL有主键、外键约束
- SQL型数据库更安全,支持ACID特性
📕谈谈Redis吧
- 键值对(key-value)存储,value支持多种不同数据结构
- 单线程,每个命令具备原子性
- 基于内存,速度快
- 支持数据持久化,隔段时间就会把数据持久化到磁盘
- 支持主从集群、分片集群
📕Linux启动Redis
配置完环境之后,可在finallshell中用命令启动redis
redis-cli -h linux的ip地址 -p 端口号(默认6379)
AUTH 密码
二、Redis常用命令
所有的命令都可以参考官方文档:Commands | Redis
🌳通用命令
- keys *查询所有的键 (因为用了模糊查询,效率很慢 不建议使用)
- del [key值] 删除指定键的key 返回成功个数
- exist [key值]
- expire [key值] [过期时间,单位秒]为key设置过期时间(短信验证码)
- TTL [key值] 查看过期时间 返回值:-1 永久有效 -2 已过期
- select [0-15] 切换数据库
🌳字符串命令
- set [key] [value] 添加或修改 mset [key] [value]…… 批量添加或修改
- get [key] 获取value mget [key]……批量获取值
- INCR [key] value自增1
- INCRBY [key] [n]自增n
- setex [key] [过期时间] 新增或修改key并设置过期时间
- setnx [key] [value] 如果存在key不会修改!!
🌳哈希表命令
哈希表结构 key - field value
哈希表命令 在字符串命令的基础上加H,另外还需指定field属性
HKEYS [KEY值]
HVALS [KEY值]
HINCRBY [KEY] [FILED] 秒数
三、key的分级存储
情景:如果两个id的值都为1,那么怎么区分他们呢?
解决:我们可以分级存储 项目名:业务:类型:id
例如 存储一本书
命令:set itpan:book:1 '{"id":1, "name":"西游记"}'
存储手机
命令:set itpan:phone:1 '{"id":1, "name":"红米K40"}'