1.什么是redis
- redis是一个nosql(not only sql不仅仅是sql)数据库,也称之为非关系型数据库(相对于传统关系型数据库,例如:mysql、oracle、sqlserver、postgresql等)
- redis是将数据存放在内存中,由于内容存取速度快所以redis广泛用于互联网企业中
- 优点:存取速度快,官方称读速度每秒会达到30万次,写的速度每秒达10万次每秒,具体速度限制于硬件
- 缺点:对持久化支持不够良好,所以redis一般不作为数据的主数据库存储,一般配合关系型数据库使用
- 关系型数据库: 以二维表形式存储数据
- 非关系型数据库:以键值对形式存储数据
2.redis应用领域
分布式缓存
分布式session
保存博客或者论坛的留言回复等
总之是用在数据量大,并发量高的情况下
3.redis数据类型
- String字符串:
格式: set key value
取值: get key
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。 - Hash(哈希)
格式: hmset name key1 value1 key2 value2
取值: hmget name key1 key2 , hgetall name
删除: hdel name key1
Redis hash 是一个键值(key=>value)对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 - List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
格式: lpush key value
取值: lrange key 1 -1
在 key 对应 list 的头部添加字符串元素
格式: rpush key value
在 key 对应 list 的尾部添加字符串元素
格式: lpop key , rpop key
key 对应 list 中删除第一个或最后一个元素
格式: llen key
返回 key 对应 list 的长度 - Set(集合)
格式: sadd key value
取值: smembers key
删除: srem key
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 - zset(sorted set:有序集合)
格式: zadd name score value
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
4. 持久化:
- RDB(不用任何配置,系统默认持久化方案)
通过快照完成的,可以设置间隔多久保存一次
优点:让redis的数据存取速度变快
缺点:服务器断电时会丢失部分数据 - AOF
可以设置实时保存
优点:持久化良好,能保存数据的完整性
缺点:大大降低了redis的存取速度
配置 appendonly yes 使用aof持久化