首页 > 数据库 >redis缓存数据库

redis缓存数据库

时间:2023-03-07 19:24:34浏览次数:44  
标签:缓存 name get 数据库 redis 连接 age conn

redis缓存数据库

redis介绍与安装

缓存数据库,非关系型数据库(nosql),由c语言写的服务端用于在内存中存取数据(读取速度快)

速度快的原因有

  1. 纯内存操作

  2. 网络模型使用的IO多路复用

  3. 单进程,单线程架构,没有线程进程间的切换,更少的消耗资源

版本:最新7.x,稳定5.x

系统:mac,linux源码编译安装,win由微软编译成了安装包,由以下网址下载

最新5.x版本 https://github.com/tporadowski/redis/releases/
最新3.x版本 https://github.com/microsoftarchive/redis/releases

安装后,win系统中释放了两个命令:

  • redis-server启动服务端,可以-bind -b绑定ip,-port -p选择端口,不选择则按配置启动
  • redis-cli启动客户端,默认连接本机的6379端口,也可-h -p选择

ps:当安装时,系统就会自动的将服务端添加到系统服务中,我们本地测试使用时可以不用配置了。

python-redis模块

pip install redis

连接redis

普通连接

import redis

conn = redis.Redis()  # 默认不填,就是连接本地的6379端口
# conn = redis.Redis(host='127.0.0.1', port=6379)  # 设置连接的端口地址再连接

""" web项目中的使用:
一定是不同的请求都要访问redis服务端,每一个请求都会起一个连接来访问服务端请求操作。
以下为用线程模拟多个请求去访问redis连接:
"""
def task():
    conn = redis.Redis(connection_pool)
    print(conn.get('name'))
    
for i in range(1000):
    t = Tread(target=task)
    t = start()  # 同一时间出现过多连接的时候,可能导致连接数过多

连接池连接

限制项目中对redis服务端的连接数。

与进程池线程池的概念类似,先开辟几个固定的连接,每次需要连接redis,从这连接池中取即可。

"""pool.py  通过导模块实现单例模式,让redis连接池在整个项目中只会产生一次"""
import redis
POOL = redis.ConnectionPool(max_connections=10, host='127.0.0.1', port=6379) 

调用连接池:

conn = redis.Redis(connection_pool=POOL)  # 传入连接池对象即可

redis数据类型

字符串参数

>>> import redis
>>> conn = redis.Redis()  # 默认不填,就是连接本地的6379端口

>>> conn.set("name","leethon")  # 设置键值对
True
>>> conn.get("name")  # 按键取值
b'leethon'  # 取出的是bytes类型

>>> conn.set("name","lee")  # 覆盖之前的name
True
>>> conn.get("name")
b'lee'

>>> conn.set("age","18",ex=10)   # 设置10秒后过期清除
True
>>> conn.get("age")   # 在10秒内可以取到
b'18'
>>> conn.get("age")   # 等待十秒后再去取,找不到age了
>>> conn.get("age")

>>> conn.set("name","leethon",nx=True)  # nx参数,当有name时放弃set设置
>>> conn.get("name")
b'lee'

>>> conn.set("name","leethon",xx=True)  # xx参数,当没有name时放弃set设置
True
>>> conn.get("name")
b'leethon'

>>> conn.mset({"age":18,"hobby":"run"})  # 批量设置键值
True
>>> conn.get("age")
b'18'
>>> conn.mget("name","age","hobby")  # 批量拿数据组织为列表
[b'leethon', b'18', b'run']

>>> conn.getset("hobby","python")
b'run'
>>> conn.get("hobby")
b'python'

>>> conn.strlen("hobby")
6

>>> conn.incr("age", 2)  # 自增,第二个参数表示间隔
20
>>> conn.decr("age", 3)  # 自减,第二个参数表示间隔
17

>>> conn.getrange('name',0,9)  # 获取指定字节范围的
b'leethon is'
>>> conn.setrange('name',0,'everyone')  # 修改指定位置的字符串
19
>>> conn.get('name')
b'everyoneis handsome'

列表

哈希

集合

有序列表

消息队列stream

标签:缓存,name,get,数据库,redis,连接,age,conn
From: https://www.cnblogs.com/Leethon-lizhilog/p/17189273.html

相关文章

  • Redis的介绍安装以及启动与使用还有五大数据类型
    目录一、介绍Redis1.详细介绍2.介绍总结二、安装启动以及运行Redis1.Redis的安装步骤2.Redis的启动方法3.图形化界面使用Redis4.pycharm使用Redis三、redis五大数据类......
  • Redis
    目录Redis介绍与安装官网下载安装启动redis存储方式图形化客户端操作下载图形化工具连接redis服务器python连接redis下载模块导入模块链接池链接单例模式多线程链接池链接R......
  • redis 基础1(包含介绍,安装)
    Redis介绍安装#关于redis-1.redis是一个缓存型数据库【大部分时间做缓存,但是不仅仅可以做缓存】-2.redis是一个非关系型(nosql)数据库【区别于mysql】-3......
  • Ubuntu 通过 docker 运行 redis
    1、首先拉取redis的镜像dockerpullredis2、运行redis容器dockerrun--nameredis-p6379:6379-dredis--nameredis#容器实例的名称-p6......
  • 前置缓存解决热点数据
    全量缓存抗住秒级百万的QPS毫无压力   “百万QPS”有一个非常重要的限制条件,即这百万的QPS都是分属于不同用户的当百万的QPS属于不同用户时,因缓存是集群化......
  • 通用缓存存储方案设计
    目录介绍01.整体概述说明1.1项目背景介绍1.2遇到问题记录1.3基础概念介绍1.4设计目标1.5产生收益分析02.市面存储方案2.1缓存存储有哪些2.2缓存策略有哪些2.3常见......
  • 1 登录页面分析 2 登录页面 3 注册页面 4 Redis介绍与安装 5 Redis普通连接和连接池 6
    目录1登录页面分析1.1Login.vueHeader.vue2登录页面2.1Login.vue3注册页面Register.vueHeader.vue4Redis介绍与安装5Redis普通连接和连接池5.1普通连接5.2连接池......
  • 【Mybatis】数据库动态查询
    在工作目录中新建文件夹idea中file→new→project→Maven      pom.xml中dependencies之内的是依靠<?xmlversion="1.0"encoding="UTF-8"?><projectxm......
  • MySQL查询数据库所有表名及其注释
    1、查看Mysql数据库"ori_data"下所有表的表名、表注释及其数据量SELECTTABLE_NAME表名,TABLE_COMMENT表注释,TABLE_ROWS数据量FROMinformation_schema.tablesWHERE......
  • 使用Python操作Mysql数据库(进阶)
    #-*-coding:utf-8-*-importloggingimportpymysqlfromrest_framework.responseimportResponselogger=logging.getLogger(__name__)#连接数据库def......