Redis入门
概述
Redis是什么?
Redis(RemoteDictionaryService),即远程字典服务
Redis能干嘛?
1、内存存储,持久化,内存中是断电即失,所以说持久化很重要(rdb、aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量! )
特性
1、多样的数据类型
2、持久化
3、集群
4、事物
…
Window安装[不推荐]
1、官网或者GitHub下载安装包
2、解压到指定电脑目录,可配置相应环境变量
3、开启运行服务器
4、使用redis客户端连接服务器
Linux安装
1、下载安装包
2、解压安装包
3、进入解压后的文件夹,可以看到redis.conf
yum install gcc-c++
make # 编译
make install # 安装
5、redis的默认安装路径: /usr/local/bin
6、将配置文件复制拷贝到备份
7、redis默认不是后台启动
8、启动redis服务
9、查看进程
ps -ef | grep redis
测试性能
redis-benchmark是一个压力测试工具
官方自带性能测试工具
测试: 100个并发,100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
基础知识
redis默认有16个数据库,默认使用第0个数据库,使用select进行切换
C:\Users\86150>redis-cli
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> dbsize
(integer) 0
keys *查看所有的key
flushdb,flushall清空当前数据库,清空所有数据库
exists key,判断值是否存在
move name 1,移动key为name到数据库1
expire name 10,设置key为name的值10s后过期
ttl name,查看当前key剩余秒数
为什么端口号是:6379(九宫格缩写,以为女星名字)
redis是单线程
官方表示,redis是基于内存操作,cpu不是redis性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽。
redis为什么单线程还这么快
1、误区1:高性能的服务器一定是多线程的?
2、误区2:多线程(CPU上下文会切换!)一定比单线程效率高?
CPU>内存>硬盘的速度要有所了解
核心:redis是将所有的数据放在内存中,所以使用单线程去操作效率就是最高的,多线程(cpu上下文会切换:耗时操作),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!