redis初级介绍

内容概要

  • redis介绍
  • python操作redis
  • redis连接池

redis介绍

1.介绍c s架构的软件

  • redis:非关系型数据库【存数据的地方】nosql数据库,内存存储,速度非常快,可以持久化【数据从内存同步到硬盘】,数据类型丰富【5大数据类型:字符串,列表,哈希(字典),集合,有序集合】,key-value形式存储【根本没有表的结构,相当于咱们的字典】
  • nosql:指非关系型数据库:1 不限于SQL 2 没有sql

2.redis 为什么这么快

  • 高性能的网络模型:IO多路复用的epoll模型,承载着非常高的并发量;
  • 纯内存操作,避免了很多io
  • 单线程架构,避免了线程间切换的消耗;
    6.x之前:单线程,单进程;
    6.x之后:多线程架构,数据操作还是使用单线程,别的线程做数据持久化,其它操作。

3.redis应用场景

  • 当缓存数据库使用,接口缓存,提高接口响应速度
    -请求进到视图—》去数据查询[多表查询,去硬盘取数据:速度慢]----》转成json格式字符串—》返回给前端
    -请求进到视图—》去redis[内存]----》取json格式字符串—》返回给前端
  • 做计数器:单线程,不存在并发安全问题
    -统计网站访问量
    -个人站点浏览量
    -文章阅读量
  • 去重操作:集合
  • 排行榜:有序集合
    -阅读排行榜
    -游戏金币排行榜
  • 布隆过滤器
  • 抽奖
  • 消息队列

4.redis安装

  • redis介绍:使用c语言写的—【编译型语言,在操作系统运行,要编译成可执行文件,由于采用了IO多路复用的epoll模型,所以它不支持windows,只有linux操作系统支持epoll】

  • 官网:https://redis.io/
    下载完是源代码:c语言源码 :https://redis.io/download/#redis-stack-downloads

  • 中文网:http://redis.cn/download.html

  • win版本下载地址
    最新5.x版本 https://github.com/tporadowski/redis/releases/
    最新3.x版本 https://github.com/microsoftarchive/redis/releases

  • win装完会有redis服务

  • 启动服务,手动停止

  • 客户端链接:redis-cli -h 127.0.0.1 -p 6379

  • 简单命令:
    set name lqz
    get name
    ping

  • 停掉服务:
    -去win服务点关闭
    -客户端关闭:shutdown

  • mysql 服务端
    #mysql客户端
    -navicate
    -命令窗口cmd
    -python操作

  • redis 服务器端
    #redis 客户端
    -redis-cli
    -图形化工具:redis-destop-management
    -python操作

python操作redis

from redis import Redis

conn = Redis(host='localhost',port=6379)
conn.set('name','jason')
print(conn.get('name'))
conn.close()

b'jason'

Process finished with exit code 0

redis连接池

import redis

pool = redis.ConnectionPool(max_connections=200, host='127.0.0.1', port=6379)
from redis import Redis
from threading import Thread

# 直接链接
# def get_name_from_redis():
#     conn = Redis(host="localhost", port=6379)
#     print(conn.get('name'))
#     conn.close()
#
#
# for i in range(100):
#     t=Thread(target=get_name_from_redis)
#     t.start()
#
#
# import time
# time.sleep(10)


### 使用连接池链接
import redis
from POOL import pool
def get_name_from_redis():
   # 创建一个连接池,保证它是单例,全局只有一个pool对象:使用模块导入方式实现单例

   conn = redis.Redis(connection_pool=pool) #m每执行一次会从池中取一个链接,如果没有,等待
   res=conn.get('name')
   print(res)
   conn.close()


for i in range(100):
   t=Thread(target=get_name_from_redis)
   t.start()


import time
time.sleep(10)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值