Login
网站首页 > 文章中心 > 其它

Redis缓存数据库-快速入门_Redis缓存与数据库双写不一致如何解决?

作者:小编 更新时间:2023-12-12 12:41:49 浏览量:267人看过

第一段:Redis数据库

①.、redis的安装与运行

第二段:pycharm操作redis

①.、Redis普通连接和连接池

第三段:Django操作Redis

①.、自定义包方案

Redis数据库快速入门

第一段:Redis数据库

介绍:

Redis:非关系型缓存数据库

nosql:非关系型数据库

没有表,没有表与表之间的关系,更不存在外键

存储数据的形式为key:values的形式

c语言写的服务(监听端口),用来存储数据的,数据是存储在内存中,取值,放值速度非常快, 10w qps

缓存数据库:

数据存储在内存中

大部分时间用于缓存,也可以长久存储数据

redis速度为什么这么快:

纯内存操作

网路模型使用的IO多路复用(可以处理的请求更多)

Redis缓存数据库-快速入门_Redis缓存与数据库双写不一致如何解决?

1、redis的安装与运行

版本选择:

mac:源码编译安装

linux:源码编译安装

windows:redis没有windows的版本,只有微软基于源码改动,编译的安装包(用法一样)

Redis缓存数据库-快速入门_Redis缓存与数据库双写不一致如何解决?

redis需要了解的目录结构:

redis-server :服务端启动文件

redis-cli:客服端启动文件

启动redis:

方式一:将服务端添加至系统服务(电脑运行自动启动)*

方式二:cmd终端使用命令启动redis-server 指定配置文件 # 如果不指定,会默认

客服端链接redis:

cmd终端使用命令

方式二:redis-cli -h 地址 -p 端口

2、RESP图形化操作文件

可以使用软件:

Redis Desktop Manager :开源的,原来免费,后来收费了  推荐用(mac,win,linux 都有)

-Qt5  qt是个平台,专门用来做图形化界面的 

-resp-2022.1.0.0.exe 一路下一步,安装完启动起来

-Redis Client  小众

RESP操作redis:

Redis缓存数据库-快速入门_Redis缓存与数据库双写不一致如何解决?

第二段:pycharm操作redis

安装模块:

# 下载模块:
pip install redis
-使用django连接池:https://blog.51cto.com/liangdongchang/5140039

1、Redis普通连接和连接池

普通链接:

普通链接是指,直接操作redis,每一次操作都会建立一条链接

# 导入模块
from redis import Redis

# 实例化对象(后方参数填写链接的地址和端口,还可以填写其他参数)
conn = Redis(host='12⑦0.0.1', port=6379)

# 向redis中存放一个数据
conn.set('name', 'kangkang')

# 从redis中取出存放的数据(二进制格式)
print(conn.get('name'))

# 操作完成,手动关闭,不然会一直占用一条链接
conn.close()

连接池连接:

拿到一个Redis实例的连接池,避免每次建立、释放连接的开销,节省了每次连接用的时间,文中设置了最大10个.

POOL.py

# 1、使用单例模式(保证每次使用的都是同一个实例对象),设置连接池最大为10个
)

my_redis.py

# 导入redis
from redis import Redis
# 导入线程模块(模仿多线程并发)
from threading import Thread
# 导入自己创建的单例
from script.pool import POOL


# 写一个函数,在内部操作redis
def task():
    t.start()

2、Redis数据类型

redis 是key-value形式存储

2、1.String类型

# 1、set(name, value, ex=None, px=None, nx=False, xx=False)

# 17、incrbyfloat(self, name, amount=1.0)
自增(支持小数)
  
# 18、decr(self, name, amount=1)
自减
   
# 19、append(key, value)
在指定key对应值的后面添加指定字符
conn.append('name','NB')

2、2.List类型

from redis import Redis

conn = Redis(host='12⑦0.0.1', port=6379)

#  1、lpush(name, values)
print(res)

conn.close()

2、③Hash类型

import redis

conn = redis.Redis()

# 1、hset(name, key, value)
    print(i)

conn.close()


4、通用操作

import redis

conn = redis.Redis()

# 1、delete(*names)
print(conn.type('age'))

conn.close()


3、Redis管道

什么是管道:

管道是指,将多条redis操作放在管道内同时执行,管道也是一种事务的操作,可以作用于敏感,重要的数据

ridis支持事务吗:

redis的事务基于管道,只有单实例才支持事务

ridis管道的使用:

# 引入redis
import redis

# 实例化redis对象
conn = redis.Redis()

# 实例化管道
p = conn.pipeline(transaction=True)

# 开启管道(类似于开启事务)
p.multi()
# 模拟张三给李四100元
p.decr('zhangsan', 100)
# 模拟李四账户增加100元
p.incr('lisi', 100)
# 启动管道(类似于提交事务)
p.execute()

# 关闭
p.close()

第三段:Django操作Redis

1、自定义包方案

这种方案所有的框架都可以使用

- 1、第一步:创建一个pool.py文件(导入rides,并实例化对象,生成连接池)
import Redis
# 实例化对象,设置连接池最大数量为100
POOL = Redis.CoonectionPool(max_connections=100)
res = conn.get('name')

2、将Redis设置为Django缓存[推荐使用]

需要安装模块,配置settings文件,以后直接作为Django内置缓存使用

- 安装模块:
pip install django-redis
# 底层做了pickle序列化 

3、使用第三方模块

直接使用django-redis模块


from django_redis import get_redis_connection

def test_redis(request):
return JsonResponse()

以上就是土嘎嘎小编为大家整理的Redis缓存数据库-快速入门相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章