Redis入门简介
1.特性
- 速度快,基于内存,能达到10w QPS(每秒查询速度)
- 基于键值对,它的value中支持5种数据结构
- 单线程模式,天生线程安全
- 支持持久化
- 主从复制、高可用、分布式、水平扩容
2.应用场景
- 缓存:提供键值过期时间,提供最大内存控制和内存溢出后的淘汰策略
- 排行榜:通过列表和有序集合很方便构建各种排行榜系统
- 计数器:设置超时时间来实现限流?
- 消息队列:这个还是比不上专业的消息队列的
3.安装配置
单机的安装就是下载安装没有什么好说的,使用Docker安装最为方便
主从配置这里不详细记录,参考:文章
安装
mac
- 到官网下载压缩包
- 将压缩包解压到/usr/local目录下:/usr/local/redis-5.0.5
1
2
3
4
5
6
7
8
9
10# 安装
cd redis-5.0.5
make
sudo make install
# 启动,启动之前修改一下整个Reddit文件夹的权限,不然用起来不方便
sudo chmod 777 redis-5.0.5
redis-server redis.conf
# 关闭
redis-cli shutdown
Docker
1 | docker pull redis |
Python调用
安装与测试
- 安装对应库
1
pip3 install redis
- 调用测试
1
2
3
4
5
6
7import redis
# host是redis主机,需要redis服务端和客户端都启动 redis默认端口是6379
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'luoyang')
print(r['name'])
print(r.get('name'))
print(type(r.get('name'))) - 开启redis服务,如果有修改配置文件中redis运行的端口就调整成对应的端口即可
- 运行上面的脚本应该就能输出存储的内容了
基础方法
- 存储数据
1
2
3
4
5
6
7# 存储数字
red.set('age',23)
# 存储字符串
red.set('name','luoyang')
# 设置过期时间,单位s
red.set('temp','test_data',ex=10) - 获取数据
1
2
3
4
5
6
7# 获取对应的value
red.get('age')
# 模糊匹配所有key
red.keys('na*')
# 查看过期时间,返回值有三种,-2已过期,-1没有设置过期时间,正数剩余过期时间
red.ttl('temp')
