Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
1) 字符串类型 string
2) 哈希类型 hash
3) 列表类型 list
4) 集合类型 set
5) 有序集合类型 sortedset
redis的应用场景
• 缓存(数据查询、短连接、新闻内容、商品内容等等)
• 聊天室的在线好友列表
• 任务队列。(秒杀、抢购、12306等等)
• 应用排行榜
• 网站访问统计
• 数据过期处理(可以精确到毫秒
• 分布式集群架构中的session分离
由redis的配置文件,可知redis一共有16个库,下标由0~15,如下:
redis是统一密码管理的,16个库都是同样密码,要么都OK要么一个也连接不上。
Redis索引都是从零开始。
redis的默认端口是6379
redis一些杂项命令
select:切换数据库
dbsize:查看当前数据库的key的数量
flushdb:清空当前库
Flushall:清空全部库
redis的数据结构简述:
redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构
value的数据结构:
1) 字符串类型 string
2) 哈希类型 hash : map格式
3) 列表类型 list : linkedlist格式。支持重复元素
4) 集合类型 set : 不允许重复元素
5) 有序集合类型 sortedset:不允许重复元素,且元素有顺序
string(字符串)
string是redis最基本的类型。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。一个redis中字符串value最多可以是512M
hash(哈希,类似java里的Map)
Redis hash 是一个键值对集合。是一个string类型的field和value的映射表,hash特别适合用于存储对象。其类似Java里面的Map<String,Object>
list(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。而redis正是通过分数来为集合中的成员进行从小到大的排序。的成员是唯一的但分数却可以重复
key
关键字key用法演示:
keys *:查看redis里存了多少值
exists key:判断某个key是否存在,存在返回数字1,不存在返回0
move key db:将key从当前库移动到db库,存在返回数字1,不存在返回0
expire key 秒钟:为给定的key设置过期时间
ttl key: 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key :查看key的类型