这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天,根据提到的redis,对redis的基本知识进行了部分学习,整体上逐渐有了认识。 redis是一个key-value存储系统,是跨平台的非关系型数据库。是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库。
redis-----数据结构服务器,value可为string、hash、list、sets、sorted sets等。
一、基本介绍
redis与其他key-value缓存产品相比:
- redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载使用
- redis支持的key-value类型的数据,包含list、set、hash、zset等数据结构的存储
- redis支持数据的备份,即master-slave模式的数据备份
- redis提供原子性操作,数据类型都是基于基本数据结构,同时对程序员透明,无需额外的抽象
- redis运行在内存中但是可以持久化到磁盘(对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存),并且相比磁盘操作,内存操作更简单,另外在磁盘格式方面都是以追加的方式产生(因为不需要随机访问)。
redis优点:
- 性能高
- 数据类型丰富
- 原子操作
- 特性丰富(如:redis还支持publish/subscribe)
二、数据类型
string:
- redis最基本数据类型,一个键最大能存储512MB
- string 类型的二进制是安全的(redis的string可以包含任何数据)
hash:
- 键值对集合(每个hash可以存储2*32-1键值对)
- string类型的field和value的映射表(适合用于存储对象)
set:
- string类型的无序集合
- 集合通过哈希表实现的,添加、删除、查找的复杂度都是O(1)
三、redis命令
1.打开redis客户端:
- 启动redis服务器
- 打开终端输入redis-cli,会连接本地的redis服务
远程redis服务执行命令:
-
redis-cli -h host -p port -a password
(如:redis-cli -h 127.0.0.1 -p 6379 -a "mypass")
host:127.0.0.1 password:mypass
2.键:
command key_name
- command:set、del(执行成功后输出integer-1,否则integer-0)
del key----key存在时删除key
dump key---序列化给定key,并返回被序列化的值
exist key----检查给定的key是否存在
expire key seconds---为给定key设置过期时间,以秒计
expireat key timestamp--为key设置过期时间,命令接收的时间参数是unix时间戳
move key db----将当前数据库的key移动到给定的数据库db中
type key---返回key所存储的值的类型