1、redis简介
数据库分为关系型数据库和非关系型数据库;关系型数据库代表有mysql和sqlServer等,非关系型数据库的代表有redis等;
之所以称redis为非关系型数据库,是因为redis数据库中存放的数据不像mysql中的数据,表、行、列都代表数据之间的特定关系;redis数据库中存放的数据是(key-value)键值对形式的;其中key只能是String类型,value支持五种类型,分别是String、list、set、zset和hash;
需要注意的是,redis的数据是存放在缓存中的,所以查询的速度很快;但是这些数据也可以持久化到内存,所以对数据进行读写的时候需要注意数据的大小不能超过硬盘的容量;
redis的优势:
(1)读写速度快,数据存储在内存中,读写的速度快,方便使用;
(2)支持多种数据类型的存储;
(3)redis的单个操作都具有原子性,多个操作也能支持事务,避免数据操作的错误;
2、redis数据类及常用命令
(1)String
常用操作:SET key value
如:SET runoobkey redis创建了一个key是runoobkey ,value是redis的数据并存到数据库中;
GET runoobkey 获取runoobkey对应的value值
DEL runoobkey 存在key为runoobkey 的数据时删除这条数据
EXISTS runoobkey判断key为runoobkey的数据是否存在
(2)hash
hash是一个键值对的集合,相当于key是String类型的数据,value是一个String类型的键值对;(String,(String,String))
常用操作:
HSET key field value将哈希表 key 中的字段 field 的值设为 value
**HMSET key field1 value1 [field2 value2 ]**设置多个值
HGET key field获取存储在哈希表中指定字段的值
**HMGET key field1 [field2]**获取给定所有字段的值
操作基本和String类型一致,只不过前面加了一个H
(3)list
Redis列表是简单的字符串列表,按照插入顺序排序;
正常插入数据:RPUSH;头部插入:LPUSH;已存在的key需要加X;
(4)set集合
set是一个无序集合,集合中的元素不能重复;
(5)zset集合
zset是一个有序集合,集合中的元素不能重复;集合中的元素都需要指定一个分数,根据分数对元素进行升序排序;