redis
1. redis入门概述
1.1 redis是什么?
1.reids:remote dictionary server(远程字典服务器)
2.redis是完全开源免费的,用C语言编写的,遵守bsd协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的nosql数据库,是当前最热门的nosql数据库之一,也被人们称为数据结构服务器
3.redis与其他key-value缓存产品有以下三个特点:
- a.redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
- b.redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- c.redis支持数据的备份,即master-slave模式的数据备份
1.2 redis可以做什么
1.内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
2.取最新N个数据的操作,如:可以将最新的10条评论的id放在redis的list集合里面
3.模拟类似于httpSession这种需要设定过期时间的功能
4.发布、订阅消息系统
5.定时器、计数器
1.3 redis怎么玩?
1.数据类型、基本操作和配置
2.持久化和复制,rdb/aof
3.事务的控制
4.复制
2.常用五大数据类型简介
2.1 redis五大数据类型
- String 字符串
- redis最基本的类型,可以理解成与memcached一模一样的类型。一个key对应一个value
- string是二进制安全的,意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象
- 一个redis中字符串value最多可以是512M
- Hash 哈希,类似Java里的Map
- 是一个键值对集合
- 是一个string类型的field和value的映射表,hash特别适合用于存储对象
- 类似Java里面的Map<String,Object>
- .List 列表
- 是简单的字符串列表,按照插入顺序排序。可以添加一个元素导列表的头部(左边)或者尾部(右边)
- 底层实际上是个链表
- Set 集合
- string类型的无序集合,通过hashTable实现的。无序无重复
- Zset(sorted set) 有序集合
- 一样也是string类型元素的集合,且不允许重复的成员
- 不同的是每个元素都会关联一个double类型的分数
- redis正是通过分数来为集合中的成员进行从小到大的排序
- zset的成员是唯一的,但分数(score)可以重复
2.2 redis键(key)
1.keys * :查看所有的键
2.exists key的名字 :判断某个key是否存在
3.move key db :当前库就没有了,被移除了
4.expire key 秒钟: 为给定的key设置过期时间
5.ttl key:查看还有多少秒过期 -1表示永不过期 -2表示已过期(终结,表示移除系统)
6.type key : 查看你的key是什么类型
</