1.1. 什么是NoSql
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它泛指非关系型的数据库。随着互联网2003年之后web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的交友类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
关系型数据库:以关系(由行和列组成的二维表)模型为核心数据库. 有表的储存系统
RDBMS (关系型数据库): mysql(现在都喜欢使用开源免费),oracle(有钱),SQLserver,postgrep db2 ,access...等
Redis 在后台做缓存
redis和memcached是key-value的Nosql,主要用来做缓存的.
2.1. Redis是什么
(1)Redis 是一个高性能的 开源的、C语言写的Nosql(非关系型数据库),数据保存可以存储在内存中或者磁盘中。
(2)Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。--数组 list set map ...
数据结构:数组,list,set,map等
redis提供了一下操作方法,我们使用这些方法就可以对存入字符串,组织成各种类型数据库结构(string,list,set,map等).
3.1 redis的使用场景
(1) 最多 就是缓存 --redis
(2)计数器应用 -- 微博 热点新闻 -- 转载 点赞(高并发)
(3)实时防攻击系统 -- 银行网站 (登录) --计数 (ip 同一个ip + 5)
redis--支持断电恢复 内存和磁盘
(4)有效期的应用 -- 道具 红包 优惠券 ...
(5)支持无序的场景 -- set特效
(6)队列 -->quene -->秒杀 抢购 --redis
(7)消息系统订阅发布 -->redis
4.1 使用redis
(1)安装
直接解压
5.1 Redis的操作
启动redis服务(带配置文件启动,和不带配置文件启动)
在解压文件中输入cmd指令:redis-server.exe redis.windows.conf
启动成功后,点击redis-cli.exe启动客户端
进行操作。
(1)基本操作
对字符串操作
set key value
get key
mset /mget
incr decr incrBy decrBy
(2)对key的操作
keys *
expire key seconds
ttl key
del key
flushall 清库 (0-15个)
flushdb 清当前库
select index
(3)对list操作
lpush(rpush) key value1/value2...
lpop(rpop) key 弹出一个值
lrange key start stop 搜索查询
lrem key count value 移出
lindex key index
ltrim key start stop (对集合进行修剪)
(4)set操作
sadd key members 添加值
srem key member 删除值
smembers key 查看可以对应的值
(5)hash操作
hset key name value --设置key value
hget key name --通过key获取值
hmset key name1 key1 name2 key2 --批量设置
hmget key name1 name2 --批量获取
hkeys --获取所有的key
hvals --获取所有的value
hgetall --获取所有的key和value
以后使用比较多的结构:
string /list /map(hash) /set ---常用