• Redis使用


    导入

    Redis是基于key-value存储, 数据保存在内存中的, 非关系型数据库

    Redis VS MySQL

    """
    Redis: 
    	内存数据库, 读写速度快
    	非关系型(k-v), 数据操作方便, 数据固定
    MySQL:
    	硬盘数据库, 数据永久保存
    	关系型, 数据间可以有不同组合
    """
    

    Redis VS Memcache

    两者都是非关系型内存数据库, Django默认采用的是Memcache

    """
    Redis: 
    	数据类型有: 字符串, list列表, hash哈希(字典), set无序集合, zset有序集合
    	支持数据持久化到硬盘, 可以将数据同步给MySQL
    	高并发支持
    	
    Memcache:
    	数据类型只有字符串
    	不支持持久化
    	并发量小
    """
    

    安装(win64)

    • 下载地址: https://github.com/MSOpenTech/redis/releases
    • 版本: Redis-x64-3.0.504.zip
    • 解压到D盘的Redis文件下即可
    • 将Redis添加到系统变量
    • 将Redis注册到windows服务中:
      • 切换到Redis安装目录下执行: redis-server.exe --service-install redis.windows.conf --loglevel verbose

    基本操作

    启动Redis服务

    """
    1) 启动Redis服务: 
    >: redis-server --service-start
    
    2) 指定配置文件启动Redis服务: 
    >: redis-server --service-start D:/Redis/redis.windows.conf
    """
    

    连接Redis服务

    """
    1)默认连接:-h默认127.0.0.1,-p默认6379,-n默认0,-a默认无
    >: redis-cli
    
    2)完整连接:
    >: redis-cli -h ip地址 -p 端口号 -n 数据库编号 -a 密码
    
    3)先连接,后输入密码
    >: redis-cli -h ip地址 -p 端口号 -n 数据库编号
    >: auth 密码
    """
    

    切换数据库

    """
    1)在连入数据库后执行
    >: select 数据库编号
    """
    

    关闭Redis服务

    """
    1)在没有连接进数据库时执行
    >: redis-cli shutdown
    
    2)连接进数据库后执行
    >: shutdown
    """
    

    密码管理

    """
    1)提倡在配置文件中配置,采用配置文件启动
    requirepass 密码
    
    2)当服务启动后,并且连入数据库,可以再改当前服务的密码(服务重启,密码重置)
    config set requirepass 新密码
    
    3)连入数据库,查看当前服务密码密码
    config get requirepass
    """
    

    数据持久化

    """
    1)配置文件默认配置
    save 900 1  # 超过900秒有1个键值对操作,会自动调用save完成数据持久化
    save 300 10  # 超过300秒有10个键值对操作,会自动调用save完成数据持久化
    save 60 10000  # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化
    
    2)安全机制
    # 当redis服务不可控宕机,会默认调用一下save完成数据持久化
    
    3)主动持久化
    >: save  # 连入数据库时,主动调用save完成数据持久化
    
    注:数据持久化默认保存文件 dump.rdb,保存路径默认为启动redis服务的当前路径
    """
    

    Redis数据类型

    """
    数据操作:字符串、列表、哈希(字典)、无序集合、有序(排序)集合
    	有序集合:游戏排行榜
    	
    字符串:
    	set key value
    	get key
    	mset k1 v1 k2 v2 ...
    	mget k1 k2 ...
    	setex key exp value
    	incrby key increment
    	
    列表:
    	rpush key value1 value2 ...
    	lpush key value1 value2 ...
    	lrange key bindex eindex
    	lindex key index
    	lpop key | rpop key
    	linsert key before|after old_value new_value
    	
    哈希:
    	hset key field value
    	hget key field
    	hmset key field1 value1 field2 value2 ...
    	hmget key field1 field2
    	hkeys key
    	hvals key
    	hdel key field
    	
    集合:
    	sadd key member1 member2 ...
    	sdiff key1 key2 ...
    	sdiffstore newkey key1 key2 ...
    	sinter key1 key2 ...
    	sunion key1 key2 ...
    	smembers key
    	spop key
    	
    有序集合:
    	zadd key grade1 member1 grade2 member2 ...
    	zincrby key grade member
    	zrange key start end
    	zrevrange key start end
    """
    

    Python使用Redis

    1. 安装依赖
    >: pip3 install redis
    
    1. 直接使用
    import redis
    r = redis.Redis(host='127.0.0.1', port=6379, db=1, password=None, decode_responses=True)
    
    1. 连接池使用
    import redis
    pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=1, max_connections=100, password=None, decode_responses=True)
    r = redis.Redis(connection_pool=pool)
    
    1. 缓存使用:要额外安装 django-redis
    # 1.将缓存存储位置配置到redis中:settings.py
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/0",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {"max_connections": 100},
                "DECODE_RESPONSES": True,
                "PASSWORD": "",
            }
        }
    }
    
    # 2.操作cache模块直接操作缓存:views.py
    from django.core.cache import cache  # 结合配置文件实现插拔式
    # 存放token,可以直接设置过期时间
    cache.set('token', 'header.payload.signature', 300)
    # 取出token
    token = cache.get('token')
    
  • 相关阅读:
    使用fiddler对手机APP进行抓包
    接口功能测试
    API测试
    接口测试之接口api文档的重要性
    接口测试(基础知识)
    MonkeyRunner使用
    Android 压力测试工具Monkey
    MonkeyScript
    Jmeter和LoadRunner的区别
    http协议简介
  • 原文地址:https://www.cnblogs.com/bigb/p/12180520.html
Copyright © 2020-2023  润新知