Redis
Redis是一款NOSQL(非关系型1),基于内存,Key-Value模型的可持久化数据库。
应用范围
1. 缓存
Redis作为缓存来分担数据库压力,快速响应页面,防止恶意攻击。
2. 排行榜
Redis支持有序集合zset数据类型,比传统的set多了一个顺序属性,在添加新记录时会自动调整顺序。
3. 计数器
Redis的incr(key)方法调用自增,每次有相关操作的时候,就向Redis服务器发送一个incr命令。
其余不做详述
数据类型
1. String
普通的K-V键值对存储字符串,常用方法:set、get、incr(增1)、decr(减1)。
2. Hash
Redis hash 是一个键值(key=>value)对集合。存在三个元素 key field value,对应String对象的对象名 字段名 属性或者HashMap。
常用方法:
Hset key field value:设置key的field字段的value值;
Hget key field :获取key的field字段的value值;
HKEYS key:获取所有哈希表中的字段;
Hmget key field1 field2 nofield 命令用于返回哈希表中,一个或多个给定字段的值。如果指定的字段不存在于哈希表,那么返回一个 nil 值。
3. List列表
字符串列表
常用方法:
LLEN key:返回列表长度;
Lpush key value1 value2:命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误;
Lrange key start end :返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
4. Set集合
Set 是 string 类型的无序集合。(与List的区别是具有唯一性)。
常用方法:
Sadd key value1 value2:将一个或多个成员元素加入到集合中;
Scard key:返回集合中元素的数量;
Smembers key:返回集合中的所有成员;
Sismember key member:判断 member 元素是否是集合 key 的成员。
5. ZSet有序集合
每个元素都会关联一个double类型的score(必须为数字)。
常用方法:
zadd key score1 member1 score2 member2:向有序集合添加一个或多个成员,或者更新已存在成员的分数;
zcard key:获取有序集合的成员数;
zrank key member:返回有序集合中指定成员的索引;
zrange key start stop [WITHSCORES]:通过索引区间返回有序集合指定区间内的成员,[WITHSCORES]加上返回scroe,通过索引,分数从低到高;
zrevrange key start stop [WITHSCORES]:返回有序集中指定区间内的成员,通过索引,分数从高到低。
数据库目前分为关系型数据库(SQL)和非关系型数据库(NOT ONLY SQL)。关系型数据库是基于对应的关系模型(一对一,一对多,多对多,也就是二维表格)建立的,如:Mysql、Oracle等;非关系型数据库是对关系型的补充,目前有键值对(Redis)、列、文档等模型(MongoDB)。 ↩︎