Redis介绍
内存型数据库
-
特点
- 开源,使用C编写。
- 跨平台,支持多种编程语言(C C++ Python Java PHP … )。
- 高效性,基于内存,读写速度快,高性能的Key-Value的NoSQL数据库。
- 支持多种数据类型,字符串strings,散列hashes,列表lists,集合sets,有序集合sorted sets 等等。
- 稳定性,redis支持各种架构,主从复制,哨兵模式,redis集群。
- 单进程单线程
-
附加功能
- 支持持久化:将内存中数据保存到磁盘中,保证数据安全,方便进行数据备份和恢复。
- 过期键功能:为键设置一个过期时间,让它在指定时间内自动删除。
<节省内存空间>验证码,音乐播放器,日播放排名,过期自动删除。 - 轻事务功能:原子的执行多个操作,对每一条数据操作要么成功,要么失败。
- 主从复制
- Sentinel哨兵
-
与其他数据库对比
- MySQL : 关系型数据库,存储基于磁盘,慢。
- MongoDB:键值对文档型数据库,值为类似JSON文档,数据结构相对单一。 NoSQL数据库,数据主要是存储在内存当中,如果内存不够,数据可以落地到磁盘里面去,而且MongoDB支持sql语句的查询,是最像关系型数据库的非关系型数据库 。
- Redis的诞生是为了解决什么问题??
解决硬盘IO带来的性能瓶颈。
-
应用场景
- 缓存:结合关系型数据库使用。使用Redis来缓存一些经常被用到、或者需要耗费大量资源的内容,通过这些内容放到redis里面,程序可以快速读取这些内容。
- 一个网站,如果某个页面经常会被访问到,或者创建页面时消耗的资源比较多,比如需要多次访问数据库、生成时间比较长等,我们可以使用redis将这个页面缓存起来,减轻网站负担,降低网站的延迟,比如说网站首页等。
redis的诞生是为了解决负载问题。 - 游戏中,电子商务等的排行榜。
- 电商秒杀活动,并发计数:点赞,关注等。
-
redis版本
- 最新版本:5.0
- 常用版本:2.4、2.6、2.8、3.0(里程碑-官方集群解决方案)、3.2、3.4、4.0、5.0
安装
Ubuntu
# 安装
sudo apt-get install redis-server
# 服务端启动
sudo /etc/init.d/redis-server status | start | stop | restart
# 客户端连接
redis-cli -h IP地址 -p 6379 -a 密码
配置文件
-
配置文件所在路径
/etc/redis/redis.conf mysql的配置文件: /etc/mysql/mysql.conf.d/mysqld.cnf
-
设置连接密码
1、vim /etc/redis/redis.conf 修改500行:requirepass 密码 2、重启服务 sudo /etc/init.d/redis-server restart 3、客户端连接 redis-cli -h 127.0.0.1 -p 6379 -a 123456 127.0.0.1:6379>ping
-
允许远程连接
1、注释掉本地IP地址绑定 69行: # bind 127.0.0.1 ::1 2、关闭保护模式(把yes改为no) 88行: protected-mode no 3、重启服务 sudo /etc/init.d/redis-server restart
与python交互
-
模块(redis)
Ubuntusudo pip3 install redis
-
使用流程
import redis # 1. 创建数据库连接对象 r = redis.Redis(host='127.0.0.1',port=6379,db=0,password='123456') # 2. 创建连接池并连接到redis pool = redis.ConnectionPool(host = '127.0.0.1',db=0,port=6379) r = redis.Redis(connection_pool=pool)
池化操作可以避免大量的重复创建操作,造成资源浪费。
来源:CSDN
作者:码雲.py
链接:https://blog.csdn.net/weixin_43814474/article/details/104214821