Redis概述
Redis(Remote Dictionary Server ),即远程字典服务,是一个免费,开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。是当下最热门的NoSql技术之一!也被称为结构化数据库.
Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis的使用场景
- 内存存储,持久化,内存中断电即失.因此持久化很重要.(rdb,aof)
- 效率高,可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器,计数器("浏览量,点赞量")
- ......
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
- ......
Redis推荐在Linux服务器上搭建,基于Linux开发
Redis安装到Windows
- 下载地址: github.com/MicrosoftAr…
- 解压Redis
- 开启Redis;双击redis-server.exe,如果闪退,使用控制台指令开启服务;
redis-server.exe redis.windows.conf
- 使用Redis客户端连接Redis
Windows环境下使用确实简单,但是redis开发推荐Linux环境
Linux安装
- 下载安装包
redis-6.2.6.tar.gz - 解压安装包
tar -zxvf redis-6.2.6.tar.gz - 进入解压后的文件 可以看到redis的配置
redis.conf - 安装源,基本环境
yum install gcc c++ - 执行
make命令
- redis的默认安装路径
usr/local/bin
- redis默认不是后台启动的
- 启动Redis
./redis-server ../redis.conf
- 使用
redis-cli进行连接测试 - 查看redis的进程是否开启
ps -ef|grep redis
- 关闭redis服务
shutdownexit
基础知识
redis默认有16个数据库
默认使用第0个数据库
切换数据库指令select 3
查看数据大小 dbsize
查看数据库所有的key keys *
清除当前数据库 flushdb
清除全部数据库内容 flushall
redis端口号
为什么Redis端口号为6379? 没有特殊意义,粉丝效应
Redis是单线程的
Redis很快,官方表示,redis是基于内存操作,CPU不是redis的性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了.
Redis是C语言写的,官方提供的数据为100000+的qps,完全不比同样使用key-value的Memecache差!
redis为什么单线程还如此快
- 误区1:高性能的服务器一定是多线程的?
- 误区2:多线程(CPU上下文会切换) 一定比单线程效率高!
核心:redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率是最高的,多线程(CPU上下文会切换:耗时长),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在同一个CPU上,在内存情况下,就是最佳选择!