Redis
Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用
- Redis不仅支持key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储
- Redis支持数据的备份,即master-slave模式的数据备份
优势
- 性能极高,redis能读的速度是11w次/s,写的速度是8.1w次/s
- 丰富的数据类型,Redis支持二进制案例的Strings、Lists、Hashes、Sets及Ordered Sets数据类型操作
- 原子,Redis的所有操作都是原子性的,就是要么成功执行所有操作要么完全失败不执行,单个操作是原子性的。多个操作也支持事务,通过MULIT和EXEC指令包起来
- 丰富的特性,Redis还支持publish/subscribe,通知,key过期等特性
与其他key-value存储的不同
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作;Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象
- Redis运行在内存中但是可以持久化到硬盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面,是紧凑的以追加的方式产生的,因为他们不需要进行随机访问
Redis和MySQL的区别
- 数据库类型:mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢;redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,存储的读取速度快,能够大大的提高运行效率,但是保存时间有限
- MySQL运行机制:mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作。第一,导致运行效率过慢;第二,反复的访问数据库也会导致属数据库的负载过高,因此衍生了缓存的概念,缓存就是数据交换的缓冲区(cache),当浏览器执行请求时,首先会在缓存中进行查找,然后再去数据库
- redis是一款缓存数据库,用于存储使用频繁的数据,这样可以减少访问数据库的次数,提高运行效率
总结
- 类型:
- mysql是关系型数据库,redis是非关系型数据库
- 作用:
- mysql用于持久化的存储数据到硬盘,但是速度慢
- redis用于存储使用较为频繁的数据到缓存中,读取速度快
- 需求:
- 一般配合使用
Redis的安装
教程:https://www.runoob.com/redis/redis-install.html
windows下载地址:https://github.com/microsoftarchive/redis/releases
下载.mis自动配置环境变量
#1.cmd,redis.windows.conf可省略,会启用默认
>>redis-server.exe redis.windows.conf
#2.上一个cmd窗口不要关,另开一个cmd窗口,切换到redis安装目录下(也可以不cd?)
>>D:slkOldBoyRedis>redis-cli.exe -h 127.0.0.1 -p 6379
>>D:slkOldBoyRedis>set myKey abc
>>D:slkOldBoyRedis>get myKeys
Rdis键语法
#创建key
>>set KeyName KeyValue
#获取键值、
>>get KeyName
#删除键
>>del KeyName
#键是否存在
>>exists KeyName
#给键设置过期时间,以秒为单位
>>expire KeyName
#移除键的过期时间
>>persisy KeyName
#给键重命名
>>rename KeyName NewName
#返回数据类型
>>type KeyName
Redis哈希
Redis hash是一个是string类型的field和value的映射表,适合存储对象
Redis中每个hash可以存储2**32-1键值对(40多亿)
#设置值(当字段不存在时)
>>hsetnx Key Field Value
#设置值,可设置多个
>>hmset Key Field Value
#查看指定字段是否存在
>>hexists Key Field
#获取值
>>hget key field
#获取指定键中所有字段和值
>>hgetall Key
#获取指定哈希表中所有字段
>>hkeys Key
#获取指定哈希表中所有值
>>hvals Key
#获取哈希表中字段数
>>hlen Key