首页 > 数据库 >redis

redis

时间:2022-11-14 17:46:33浏览次数:40  
标签:name get redis conn import pool

1 redis介绍

# 介绍 c s 架构的软件
    redis:非关系型数据库【存数据的地方】nosql数据库,内存存储,速度非常快,可以持久化【数据从内存同步到硬盘】,数据类型丰富【5大数据类型:字符串,列表,哈希(字典),集合,有序集合】,key-value形式存储【根本没有表的结构,相当于咱们的字典】
    
    -nosql:指非关系型数据库:1 不限于SQL  2 没有sql
    
# redis 为什么这么快
    -1 高性能的网络模型:IO多路复用的epoll模型,承载住非常高的并发量
    -2 纯内存操作,避免了很多io
    -3 单线程架构,避免了线程间切换的消耗
        -6.x之前:单线程,单进程
        -6.x以后,多线程架构,数据操作还是使用单线程,别的线程做数据持久化,其他操作

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

        
    

1.1 redis安装

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

# 微软官方:改了,编译成可执行的安装包,下载一路下一步安装
    -版本没有最新

    
    
# 官网:https://redis.io/
    -下载完是源代码:c语言源码 :https://redis.io/download/#redis-stack-downloads
    -最稳定:6.x
    -最新7.x

# 中文网:http://redis.cn/download.html
    -上面最新只到5.x
    
    
# win版本下载地址
    # 最新5.x版本 https://github.com/tporadowski/redis/releases/
    # 最新3.x版本 https://github.com/microsoftarchive/redis/releases
    下载完一路下一步即可,具体可参照:https://www.cnblogs.com/liuqingzheng/p/9831331.html
    
    
# 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操作
    

2 python操作redis

# pip3 install redis

from redis import Redis

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

3 redis连接池

POOL.py

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()

 

标签:name,get,redis,conn,import,pool
From: https://www.cnblogs.com/shangxin-bai/p/16889730.html

相关文章

  • 【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & st
    本文介绍使用LinuxVM如何连接到AzureRedis,通过SSL方式(6380)或非SSL方式(6379)问题描述在AzureRedis的官方文档中,介绍了在Windows下,如何通过redis-cli.exe连接Redi......
  • luffy之短信注册接口和登入和注册前端和redis
    一、短信注册接口#注册前端就只有一个短信注册那么接收的就只需要接收三个参数即可mobile,password,code#视图类classUserView(ViewSet):@action(meth......
  • 一口气说出 Redis 16 个常见使用场景
    目录缓存数据共享分布式分布式锁全局ID计数器限流位统计购物车用户消息时间线timeline消息队列抽奖点赞、签到、打卡商品标签商品筛选用户关注、推荐模型排行榜1、缓存Strin......
  • golang redis队列实现
    记录一下packageredisimport("bytes""encoding/json""errors")typeJobstruct{JobIdstring`json:"job_id"`Uiduint64`json:"uid"`......
  • Nodejs+Redis实现简易消息队列
    前言消息队列是存储数据的一个中间件,可以理解为一个容器。生产者生产消息投递到队列中,消费者可以拉取消息进行消费,如果消费者目前没有消费的打算,则消息队列会保留消息,直......
  • 一些网络编程方面的总结,以及redis、memcache、nginx组件的一些介绍
    网络编程主要关注的一些问题主要关注3个方面的问题连接的建立连接的断开消息的发送和到达连接的建立主要分为两种情况:服务器处理接受客户端的连接;服务端作为客户......
  • docker 搭建redis 集群
    一、创建6个redis节点的配置文件bind0.0.0.0port6381databases1save36001save300100save6010000dbfilenamedump6381.rdbdir./appendonlyyesa......
  • 阿里开源 Redis 数据迁移工具
    今天要推荐一个阿里巴巴开源工具redis-shake,一个Redis的数据迁移和清洗工具,工具使用起来比较简单,也经历过大厂的认证,正确性和稳定性都有保障。 Redis实例迁移到另一......
  • 【Azure Redis 缓存】Redis 连接失败
    问题描述AzureRedis出现连接失败,过一会儿后,又能自动恢复。 问题解答其实,因为AzureRedis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的......
  • Docker部署Redis
    1.拉取redis镜像dockerpullredis:latest2.运行docker容器     dockerrun-p6379:6379 \    -v/mydata/redis/data:/data \     -v/mydat......