Redis数据库
redis是非关系型数据库,大多是以键值对的存放数据,数据是存放在内存中。
MySQL是关系型数据库 , 是以表的方式存放数据 , 数据是直接存放到磁盘中也就是硬盘里面。
但一个用户需要重复多次获取同段数据 , 每次都从数据库磁盘中读取数据 , 那么速度就会比较慢。把常用频繁访问的数据放到内存中 , 用户访问的速度会加快 , 服务器在获取数据的时候也不需要经过数据库。
从性能上:用户第一次访问数据 ,这个数据会存放带内存 , 下一次就不需要进入数据库访问
安装后配置环境变量,在cmd进入redis服务
redis-cli
使用python链接redis
pip install redis
import redis
# 创建redis的链接池
# decode_responses 得到的结果是一个字节类型的 , 默认是False
pool = redis.ConnectionPool(decode_responses=True , max_connections=10)
# 从redis链接池中获取一个链接进行使用
conn = redis.Redis(connection_pool=pool)
conn.set('name','ac')
print(conn.get('name'))
conn.set('gender','男' , 20)
print(conn.get('gender'))
conn.lpush('ls' , 2,3,4,5,6)
print(conn.lrange('ls' , 0,-1))
Django链接redis
pip install django_redis
django中需要到settings.py文件中配置链接redis的信息
CACHES = {
"default": { # 默认
# 指定引擎
"BACKEND": "django_redis.cache.RedisCache",
# IP和端口 那个库
# redis://IP:端口/0
"LOCATION": "redis://127.0.0.1:6379/0",
# 其余的配置项
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
# 如果你的redis 有密码则加上密码
}
},
"session": { # session
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
}
# 配置告诉django 以后session不存数据库了 而是存在我指定的redis的哪个库中去
# 修改session存储机制 使用Redis来进行存储
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
# 告诉Django 到底使用哪个Redis的哪个库来存储
SESSION_CACHE_ALIAS = 'session'
import os
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'day12.settings')
import django
django.setup()
from django_redis import get_redis_connection
conn = get_redis_connection()
conn.set('age',26)
print(conn.get('age'))
# 将字节数据转换为十进制数据
print(conn.get('name').decode())