Redis知识学习
目录
- Nosql的四大分类
- 概述
- 特性
- Redis测试
- Redis基础知识
Nosql的四大分类
KV键值对:如Redis
文档型数据库:如MongoDB
列存储数据库:如HBase
图关系数据库:如Neo4j,不是存图形的,放的是关系,比如:朋友圈社交网络,广告推荐
概述
Redis是什么?
远程字典服务:Remote Dictionary Server
Redis能干嘛?
- 内存存储、持久化、内存中是断电即失,所以说持久化很重要(RDB、AOF)
- 效率高、可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(浏览量!)
特性
多样的数据类型
持久化
集群
事务
Redis测试
启动Redis服务
redis-server ./redis.conf
使用redis-cli进行测试
redis-cli -p 6379
Redis基础知识
Redis默认有16个数据库
默认使用的是第0个数据库
可以使用select 进行切换数据库
dbsize:查看数据库大小
查看所有的key
清除当前数据库
flushdb
flushall
清除全部数据库的内容
判断当前的key是否存在
移动当前key到指定数据库中
设置key的过期时间,expire,单位是秒
查看key的剩余时间
查看key的类型
Redis是单线程的
Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽
Redis是C语言写的,官方提供的数据为:100000+的QPS,完全不比同样是使用key-value的Memecache差
Redis为什么单线程还这么快?
误区1:高性能的服务器一定是多线程
误区2:多线程一定比单线程效率高(CPU上下文会切换)
Redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作),对于内存系统来说,如果没有上下文切换效率就是最高的,多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案