zoukankan      html  css  js  c++  java
  • Redis数据库

    简介

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
    
    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
    
    它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
    1.Redis是内存数据库,相比MysQl等硬盘数据库效率高
    2.在内存值配置数据库使用。而且不直接使用内存,Redis存储数据库是可以直接管理的
    3.memcache也是内存数据库,且Django默认采用memcache数据库,用redis替换memeache的路由很简单,redis更强大
                    redis支持更多的数据类型
                    redis自带缓存机制,出现数据库系统崩溃,有数据找回的功能
                    redis可以主动完成数据持久化
                    redis的数据过期时间机制也可以自身完成

    使用方法

    1.安装redis与可视化操作工具
    2.redis基础命令
    启动服务:
    >: redis-server &
    
    启动客户端连接redis
    >: redis-cli -h localhost -p 6379 -n 数据库编号(0~15)
    
    连接成功后切换数据库
    >: select 数据库编号
    3.哈希操作
    """
    常用方法:
    单增:hset key field value
    单查:hget key field
    所有键值:hgetall key
    单删:hdel key field
    所有key:hkeys key
    所有值:hvals key
    """
    4.列表操作
    """
    右增: rpush key v1 v2 ... vn
    左增: lpush key v1 v2 ... vn
    修改: lset key index value
    左删: lpop key
    右删: rpop key
    插入:linsert key before|after old_value new_value
    区间:lrange key begin_index end_index
    """
    5.集合操作
    """
    增:sadd key v1 v2 ... vn
    差集:sdiff key1 key2
    并集:sinter key1 key2
    交集:sunion key1 key2
    查:smembers key
    随机删:spop key
    """
    6.有序集合
    """
    增:zadd key score1 value1 score2 value2 ... scoren valuen
    区间个数:zcount key begin_score end_score
    排行低到高:zrange key begin_index end_index
    排行高到低:zrevrange key begin_index end_index
    """

    python使用redis

    依赖
    >: pip3 install redis
    直接使用
    import redis
    r = redis.Redis(host='127.0.0.1', port=6379)
    连接池使用
    import redis
    pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
    r = redis.Redis(connection_pool=pool)
    缓存使用:要额外安装 django-redis
    # 1.将缓存存储位置配置到redis中:settings.py
    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}
            }
        }
    }
    
    # 2.操作cache模块直接操作缓存:views.py
    from django.core.cache import cache  # 结合配置文件实现插拔式
    # 存放token,可以直接设置过期时间
    cache.set('token', 'header.payload.signature', 10)
    # 取出token
    token = cache.get('token')
  • 相关阅读:
    mybatis设置select返回HashMap,字段值为null时,不会保存key
    copyProperties 忽略null值字段
    动态新增表单
    页面时时刷新数据
    FormData 传List对象集合到后台
    linux常用命令总结
    Linux部署安装JDK
    yum安装nginx
    01_Python基础
    Nginx防盗链
  • 原文地址:https://www.cnblogs.com/xiongying4/p/12452285.html
Copyright © 2011-2022 走看看