Redis 入门
概述
Redis 是什么
Redis(Remote Dictionary Server ),即远程字典服务
是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
免费和开源!是当下最热门的NoSQL技术之一!也是被人们称为机构化数据库!
Redis 作用
1、内存存储、持久化,内存中是断点即失,所以说持久化很重要(rdb,aof)
2、效率高,用于高速缓存
3、发布订阅
4、地图信息分析
5、计时器、计数器(浏览量)
。。。。。。
特性
1、多样的数据类型
2、持久化
3、集群
4、事务
。。。。。。
学习中需要用到的东西
1、官网:redis.io
2、中文网:www.redis.cn
3、下载地址:官网下载
注意:Windows 在 Github 上下载(停更很久了!)github.com/MicrosoftArchive/redis/...
Redis推荐都是在Linux服务器上搭建,我们都是基于Linux学习。
安装
MAC 具体安装过程参考 Mac 安装 Redis
Windows 安装过程参考Windows 安装 Redis
如果linux环境有问题,命令找不到,执行下面命令!
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
redis默认的安装路径/usr/local/bin
在当前目录下创建一个目录,将redis.conf文件拷贝到文件夹下,我们之后就使用这个配置文件启动。
redis默认不是后台启动的,修改配置文件
启动 redis 服务
查看redis的进程服务是否开启
# 通过管道过滤redis的相关进程
$ ps -ef | grep redis
连接服务
$ redis-cli -h 127.0.0.1 -p 6379
关闭redis服务shutdown
,发现redis-cli和redis-server服务都停止了。
后面会使用单机多redis启动集群测试
基础知识
redis默认有16个数据库
默认使用的是第0个,可以使用select num 进行切换,
- 基本命令
# 查看数据库大小
dbsize
#切换数据库
select num
# 查看数据库所有的key
keys *
# 清除当前数据库数据内容
flushdb
# 清除所有数据库数据内容
flushall
Redis 是单线程的!
Redis是很快的,基于内存操作,CPU不是性能的瓶颈,Redis的瓶颈是机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程,所以就使用了单线程
Redis是C写的,官方提供的数据为 100000+ 的QPS(Query Per Second):每秒请求数,完全不比同样使用key-value的Memecache差
- Redis为什么单线程还这么快
1、误区1:高性能的服务器一定是多线程的?
2、误区2:多线程(CPU上下文会切换)一定比单线程效率高
CPU>内存>硬盘的速度
核心:redis是将所有的数据全部放在内存中的,所说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高的。多次读写都是在一个CPU上的,在内存情况下,这个就是最佳方案
本作品采用《CC 协议》,转载必须注明作者和本文链接