Redis数据库
1.概念
Redis数据库是键值数据库、缓存数据库,属于NoSql数据库(非关系型数据库)。
2.优势
与传统关系型数据库相比(MySQL、Oracle、SQL Server)
(1)由于存储在内存之中,所以存取效率远高于传统的关系型数据库。
(2)具有丰富的数据类型,没有固定的表结构,可以存储各种类型的值
(3)可以水平扩容、分布式
3.历史
Redis的前身是Memcache
4.可存储的类型
(1)字符串类型
redis 127.0.0.1:6379> set name "string"
OK
redis 127.0.0.1:6379> get name
"string"
注: 用mset、mget可多值存储、多值取出
(2)哈希类型
127.0.0.1:6379> hmset car name "benz" description "This is a car." price 1000000
OK
127.0.0.1:6379> hgetall car
"name"
"benz"
"description"
"This is a car."
"price"
"1000000"
注:hset可以存储一个键值对、hget可以取出一个键值对
(3)列表
redis 127.0.0.1:6379> LPUSH dblist redis
(integer) 1
redis 127.0.0.1:6379> LPUSH dblist mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH dblist mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE dblist 0 10
"mysql"
"mongodb"
"redis"
redis 127.0.0.1:6379> LPOP dblist
redis 127.0.0.1:6379> LRANGE dblist 0 10
"mongodb"
"redis"
(4)set(无序集合)
redis 127.0.0.1:6379> SADD dbset redis
(integer) 1
redis 127.0.0.1:6379> SADD dbset mongodb
(integer) 1
redis 127.0.0.1:6379> SADD dbset mysql
(integer) 1
redis 127.0.0.1:6379> SADD dbset mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS dbset
"mysql"
"mongodb"
"redis"
(5)sort set(有序集合)
redis 127.0.0.1:6379> ZADD zset 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD zset 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD zset 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD zset 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD zset 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE zset 0 10 WITHSCORES
"redis"
"1"
"mongodb"
"2"
"mysql"
"4"
5.应用场景
(1)string:可用于 秒杀商品数目或者点 zan 的操作(因为有incr 和 decr 增加操作命令)
(2)hash:电商网站中商品的详细信息可以存储在Redis中,不需要每次都访问关系型数据库。
(3)list:商品的评论表,最新的评论显示在最前面,而且可以分页显示
(4)set:set数据类型主要应用在 独立IP投票的限制/微信朋友quan的查看权限(共同好友)、session单点登录。