sql 结构化
事务特性(事务是回顾和并发控制的基本单位 四个特征: 原子性 一致性 隔离性 和持久性 简称 ACID)
ACID
nosql 非结构化
-
key-value键值对型 redis
-
Document 文档型 MongoDB
-
Graph 图类型 neo4j
-
列类型 HBase
事务特性
base
redis简介
基于内存的键值型NoSQL数据库
特征
-
键值型
-
单线程 redis6.0 对网络请求处理这一块是多线程的
-
低延迟 速度快(基于内存 ,基于IO多路复用、良好的编码)
-
支持数据持久化
-
支持主从集群、分片集群
-
支持多语言客户端
Redis启动
//指定启动的文件conf启动
redis-server /myredis/redis7.conf
//可以查看redis服务
ps -ef|grep redis|grep -v grep
//6379为默认的端口号
redis-cli -a 000000 -p 6379
-p 6379 可以去掉
或者执行
redis-cli
auth 000000
输入ping 如果输出pong 则启动成功
//在redis客户端上
SHUTDOWN 关闭服务
//远程关闭 单实例关闭
redis-cli -a 000000 shutdown
//多实例关闭
redis-cli -p 6379 shutdown
quit 退出
Redis通用命令
-
keys:查看符合模板的所有的key,不建议在生产环境设备上使用
-
DEL:删除一个指定的key
-
EXISTS:判断key是否存在
-
EXPIRE:给key设置有效期,有效期到期时key会自动删除
-
TTL:查看一个key的剩余有效期
Redis数据类型
String类型
普通字符串类型 字符串类型的最大空间不能超过512M
常见的操作命令
-
SET
-
GET
-
MSET:批量添加多个String类型的value
MSET k1 v1 k2 v2 k3 v3
-
MGET: 根据多个key获取多个String类型的键值对
MGET k1 k2 k3
-
INCR:让一个整形的key自增1
SET age 10
INCR age -
INCRBY:让一个整型的key自增指定步长
//自增2
INCRBY age 2
//自减
INCRBY age -1 -
INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
INCRBYFLOAT age 0.5
-
SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
SETNX name2 ads
-
SETEX:添加一个String类型的键值对,并且指定有效期
SETEX name 10 jack
//相当于
SET name jack EX 10
key的层级格式
set user:llt:1 '{"id":1,"name":"lwx"}'
set user:llt:2 '{"id":2,"name":"llt"}'
set user:lwx '{"id":1,"name":"lwx"}'
效果如下:
Hash类型
存储结构
常见的操作命令
-
HSET key field value
HSET lwx:user:3 name lwx
HSET lwx:user:3 age 23
HSET lwx:user:3 age 24 -
HGET key field
-
HMSET:批量添加多个hash类型key的field值
-
HMGET
-
HGETALL:获取一个hash类型的key中所有的field和value
-
HKEYS:获取一个hash类型的key中所有的field
-
HVALS:获取一个hash类型的key中所有的value
-
HINCERBY:让一个hash类型的key的字段值自增并指定步长
-
HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行
List类型
与java中LinkedList类似,可以看作时一个双向链表结构
特征
-
有序
-
元素可以重复
-
擦汗如和删除快
-
查询速度一般
常见命令
-
LPUSH key element:像列表左侧插入一个或多个元素
-
LPOP key :一处并返回列表左侧的第一个元素,没有则返回nil
-
RPUSH key element:像列表右侧插入一个或多个元素
-
RPOP key:一处并返回泪飙右侧的第一个元素
-
LRANGE key star end :返回一段叫表内的所有元素
-
BLPOP和BRPOP :与LPOP和RPOP类似,只不过在列表没有元素时等待指定时间,而不是直接返回nil
SET类型
与java中的HashSet类似 可以看作是一个value为null的HashMap
特征:
-
无序
-
元素不可重复
-
查找快
-
支持交集、并集、差集等功能
常见命令:
单个集合:
-
SADD key member :项set中添加一个或多个元素
-
SREM key member :移除set中的指定元素
-
SCARD key :返回set中元素的个数
-
SISMEMBER key member :普安段一个元素是否存在于set中
-
SMEMBERS: 获取set中所有的元素
多个集合:
-
SINTER key1 key2:求key1和key2的交集
-
SDIFF key1 key2:求key1和key2的差集
-
SUNION key1 key2:求key1和key2的并集
SortetSet类型
每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表加hash表
特性:
-
可排序
-
元素不重复
-
常见的命令:
-
ZADD key score member :添加一个或多个元素到sorted set,如果已经存在则更新score值
-
ZREM key member:删除sorted set 中的一个指定元素
-
ZSCORE key member:获取sorted set 中的指定元素的score值
-
ZRANK key member:获取sorted set 中的指定元素的排名
-
ZCARD key:获取 sorted set中的元素个数
-
ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
-
ZINCRBY key increment member:让 sorted set中的指定元素自增,不成为指定的increment值
-
ZRANGE key min max:按照score排序后,获取指定排名范围内的元素。
-
ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
-
ADIFF、ZINTER、ZUNION:求差集、交集、并集
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人