综述
一种基于客户端-服务器模型以及请求/相应协议的TCP服务
Key-value存储系统
跨平台, 非关系型数据库
值(Value)可以是:字符串,哈希Hash(字典),列表List,集合Sets,有序集合Sorted sets
默认支持16个数据库,数据库编号从0开始(不支持自定义名字)
不同数据库不支持不同密码,只有一个密8码
不同数据库中的数据是隔离的,不能共享。但是不是完全隔离,比如FLUSHALL命令可以清空所有数据库实例中的数据。
操作是原子性的,要么完全成功,要么失败完全不执行
数据存储在磁盘上,因此数据量不能大于硬件内存,但是读写速度快
数据类型
String类型
String类型是二进制安全的,可以包含任意数据。图片或者序列化对象
一个String类型最大能存储512M
Set key value
Hash哈希(字典)
是一个键值对的集合(Key=>Value)
每个Hash可以存储232-1个键值对
HMSET mydic hanjx 100 tianm 100
List 列表
每个列表可以存储232-1个元素
LPush
Set集合
sadd
Sorted Set 有序集合
zadd
事务
开始事务:MULTI
命令入队:命令1,命令2,命令3
执行事务:EXEC
***事务的执行不是原子性的,中间指令的失败,不会导致之前的指令回滚,不会导致导致后续指令终止。 ***
备份和恢复
备份:
SAVE,将创建一个dump.rdb 文件
bgsave:后台执行
恢复:
将备份文件拷贝到安装目录下,并重启服务即可。
管道技术
客户端可以在服务器未响应时,继续想服务器发送请求,并最终一次性读取服务器的所有响应
事务