Django相关配置信息

Django相关配置信息

1.配置数据库mysql

1.1 setting.py中配置信息

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'python_fullstack',  # dbname
    'USER':'root',
    'PASSWORD':'root',
    'HOST':'127.0.0.1',
    'PORT':'3306',
    }
}

1.2 在根目录下面的__init__中配置:

from pymysql 

pymysql.install_as_MySQLdb()

1.3 启动mysql服务

>>> mysql -u root -p xxx

1.4 执行数据库迁移

>>> python manage.py makemigrations
>>> python manage.py migrate 

2.配置cache到redis中

2.1 setting.py中配置信息

# cache缓存
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100},
            "PASSWORD": "qwe123",
        }
    }
}

# session配置
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default'

2.2 启动redis服务

# 1. 将redis加入环境变量
# 2. redis客户端连接
>>> redis-cli
# 3. 登录redis -> auth password
>>> auth "123456"

2.3 redis常见数据类型

整个redis可以看做一个超大号的大字典. 想要区分不同的系统. 可以在key上做文章.

redis中常见的数据类型有5个.

命令规则: 命令 key 参数

2.3.1 string

字符串(它自己认为是字符串, 我认为是任何东西. ), redis最基础的数据类型.

常用命令

set key value  # 添加一条数据
get key		   # 查看一条数据
incr key       # 让该key对应的数据自增1(原子性, 安全)
incrby key count     # 让该key对应的value自增 count 
type key		# 查看数据类型(set进去的东西一律全是字符串)

例如

set name zhangsan  # 添加数据  name = zhangsan
get name		# 查看数据 zhangsan

set age 10
get age 	# 10
incr age	# 11
get age 	# 11
incrby age 5	# 16

2.3.2 hash

哈希, 相当于字典.

常见操作

hset key k1 v1   # 将k1, v1存储在key上
hget key k1      # 将key上的k1提取出来
hmset key k1 v1 k2 v2 k3 v3....  # 一次性将多个k,v存储在key
hmget key k1 k2....# 一次性将key中的k1, k2...提取出来
hgetall key 	# 一次性将key中所有内容全部提取
hkeys key		# 将key中所有的k全部提取
hvals key 		# 将key中所有的v全部提取

示例:

HMSET stu id 1 name sylar age 18
HMGET stu name age   # syalr 18
HGETALL stu		    # id 1 name sylar age 18
HKEYS stu 	# id name age
HVALS stu   # 1 syalr 18

2.3.3 list

列表, 底层是一个双向链表. 可以从左边和右边进行插入. 记住每次插入都要记得这货是个双向链表

常见操作

LPUSH key 数据1 数据2 数据3.... # 从左边插入数据
RPUSH key 数据1 数据2 数据3.... # 从右边插入数据
LRANGE key start stop     # 从start到stop提取数据. 

LLEN key	# 返回key对应列表的长度
LPOP key        # 从左边删除一个.并返回被删除元素
RPOP key		# 从右边删除一个.并返回被删除元素

示例:

LPUSH banji yiban erban sanban siban
LRANGE banji 0 -1   # yiban erban sanban siban
RPUSH ban ban1 ban2 ban3
LRANGE ban 0 -1     # ban1 ban2 ban3
LPOP ban  # ban1
LLEN key  # 2

2.3.4 set

set是无序的超大集合. 无序, 不重复.

常见操作

SADD key 值   # 向集合内存入数据
SMEMBERS key  # 查看集合内所有元素
SCARD key # 查看key中元素的个数
SISMEMBER key val  # 查看key中是否包含val
SUNION key1 key2  # 并集
SDIFF key1 key2  # 差集合, 在key1中, 但不在key2中的数据
SINTER key1 key2 # 计算交集, 在key1和key2中都出现了的
SPOP key  # 随机从key中删除一个数据
SRANDMEMBER key count # 随机从key中查询count个数据

实例:

SADD stars 柯震东 吴亦凡 张默 房祖名   # 4
SADD stars 吴亦凡    # 0. 重复的数据是存储不进去的.
SMEMBERS stars   # 柯震东 吴亦凡 张默 房祖名
SISMEMBER stars 吴亦凡  # 吴亦凡在 stars里么?  1 在  0 不在

SADD my 周杰伦 吴亦凡 房祖名  
SINTER stars my  # 计算交集  吴亦凡 房祖名

SPOP my  # 随机删除一个
SRANDMEMEBER my 2   # 从集合总随机查看2个

2.3.5 zset

有序集合, 有序集合中的内容也是不可以重复的. 并且存储的数据也是redis最基础的string数据. 但是在存储数据的同时还增加了一个score. 表示分值. redis就是通过这个score作为排序的规则的.

常用操作

ZADD key s1 m1 s2 m2 ... # 向key中存入 m1 m2 分数分别为s1 s2
ZRANGE key start stop [withscores]   # 查看从start 到stop中的所有数据 [是否要分数]
ZREVRANGE key start stop # 倒叙查看start到stop的数据
ZCARD key   # 查看zset的数据个数
ZCOUNT key min max  # 查看分数在min和max之间的数据量
ZINCRBY key score member  # 将key中member的分值score
ZSCORE key m  # 查看key中m的分值

示例:

ZADD fam 1 sylar 2 alex 3 tory  # 添加三个数据
ZRANGE fam 0 -1 WITHSCORES # 正序查看
ZREVRANGE fam 0 -1 WITHSCORES   # 倒叙查看
ZINCRBY fam 10 alex  # 给alex加10分
ZADD fam 100 alex   # 给alex修改分数为100分
ZSCORE fam alex   # 查看alex的分数
ZCARD fam    # 查看fam的数据个数

posted on 2023-03-15 17:32  huxiaofeng  阅读(28)  评论(0)    收藏  举报

导航