Redis数据库
Redis(Remote Dictionary Server ) ,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
支持语言
- 内存存储,持久化(内存断电即失,持久化很重要(RDB,AOF))
- 效率高,可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器,计数器(浏览量)
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
不建议在windows上开发Redis,建议在Linux服务器上搭建
Github下载地址:https://github.com/MicrosoftArchive/redis/releases
默认端口:6379
使用客户端连接Redis
Linux
redis默认不是后台启动的,修改配置文件
darmonize yes
开启服务,测试连接
确认开启服务
关闭服务
shutdown
redis-benchmark:压力测试工具
redis-benchmark -命令参数
6秒内完成处理
基础知识
Redis默认有16个数据库
默认使用第0个数据库
使用select切换数据库
使用dbsize查看数据库大小
使用keys *查看数据库所有的key
使用flushdb清空当前库(使用flushall清空全部)
使用exists key名 判断key是否存在
使用move key名 1,移除当前数据库key
使用expire key名 秒数,设置key几秒后过期
使用ttl key名,查看key过期剩余时间
使用type key名,查看当前库中的key的类型
redis命令集合 https://www.redis.net.cn/order/
单点登录 :是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
Redis是单线程的:Redis很快,是基于内存操作的,CPU不是Redis的性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,所以就使用单线程实现,
单线程为什么还这么快?
- 高性能的服务器不一定是多线程的
- 多线程不一定比单线程效率高(单CPU实现多线程可能会实时调度上下文切换)
- Redis是将所有数据全部放到内存中,所以说使用单线程去操作,效率最高(对于内存系统来说,如果没有上下文切换线程就是效率最高的,多次读写都是在一个CPU上)