Redis入门
简介
- 远程字典服务
- 支持众多语言(Java、Go、PHP、Python等)
做什么
- 内存存储、持久化、内存中是断电即失,持久化很重要(rdb、aof)
- 效率高、可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(浏览量)
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
Linux安装
官网下载安装包
解压redis安装包,一般放到opt
进入解压后的文件,可以看到我们redis的配置文件
基本环境配置
1
2
3
4
5
6
7# 安装gcc环境
yum install gcc-c++
# 查看版本
gcc -v
# 编译
make
make installredis的默认安装路径、/usr/local/bin
将redis配置文件。redis.conf拷贝到自己建的文件夹
改为后台启动redis.conf—daemonize yes
启动服务
cd /redis-server dir/redis.conf
redis-cli -p 6379
ping—set name ccc—-get name—keys *
- 查看进程存在
测试性能
测试100个并发连接,1w请求
1
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
查看结果
基础知识
- redis默认有16个数据库,默认使用第0个
- 切换数据库,select 3
- 查看DB大小
查看所有的key
1
keys *
清空当前数据库
1
flushdb
清空全部数据库
1
flushall
Redis是单线程
- redis基于内存操作,cpu不是redis性能瓶颈
- 根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程
Redis单线程为什么还这么快
- 误区1:高性能服务器一定是多线程的
- 误区2:多线程(cpu上下文切换!)一定比单线程效率高
- 先去CPU > 内存 > 硬盘的速度要有所了解
- redis是将所有的数据全部放到内存中的,所有说使用单线程去操作效率就是最高的,多线程(cpu上下文切换:耗时多的操作!!)
- 对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个cpu上的,在内存情况下这就是最佳方案