Redis 的安装 使用

  • 介绍:

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string、list、set、zset(sorted set)和hash。这些数据类型都支持push/pop、add/remove、取交集、并集和差集及其他更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

  • 官网下载 Redis

启动服务 :

  • redis-server

  • 启动安装windows 服务: redis-server --service-install redis.windows.conf

    启动服务:redis-server --service-start

    停止服务:redis-server --service-stop

    cmd 操作

    redis-cli 使用redis 执行操作

    redis-cli -raw 启用中文模式 存储和查询 不会出现乱码

python中操作 Redis

  • 安装 : pip install redis

  • 使用:

    redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,

    StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,

    Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。

    ''''''
    import redis
    r = redis.Redis() # 默认连本地
    # r = redis.Redis(host='11.12.13.14', port=6379) # 可配置要连接的IP和端口
    r.set('name', 'q1mi')
    print(r.get('name'))

    连接池

    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。

    '''连接池'''
    import redis
    pool = redis.ConnectionPool()
    r = redis.Redis(connection_pool=pool)
    r.set('age', 18)
    print(r.get('age'))

    操作 见博客:

    • 原生的 redis: linux 的 操作

    • python 中操作

在django 中使用redis

  • 安装 : pip install django-redis

  • 在 django 的settings 中配置 使用缓存 的方式

    # CACHE CONF
    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": "密码",
    "DECODE_RESPONSES": True
    }
    },
    }
  • views 视图中使用

    import django_redis
    import json
    # 创建于本地 内存 redis 的链接
    cache = django_redis.get_redis_connection() value = {...}
    # 设置值
    cache.set('key',json.dumps(value))
    # 获取值
    value = json.loads(cache.get('key'))

redis 的 通知 事件

默认情况下,redis的通知事件是关闭的,在终端执行以下命令开启:

$ redis-cli config set notify-keyspace-events KEA
OK
  • 当key 设置了 过期时间 在 python 中 订阅 通知

  • 事件循环监听

    import time
    from redis import StrictRedis
    # 创建 redis 链接
    redis = StrictRedis(host='localhost', port=6379) # redis 发布订阅
    pubsub = redis.pubsub()
    # 监听通知
    pubsub.psubscribe('__keyspace@0__:*') # 开始消息循环
    print('Starting message loop')
    while True:
    # 获取消息
    message = pubsub.get_message()
    if message:
    print(message)
    else:
    time.sleep(0.01)

Redis 的安装 使用 通知事件的更多相关文章

  1. 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习

    反射实现Model修改前后的内容对比   在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...

  2. redis中键空间通知

    通过redis的键空间通知,当redis删除过期key的时候,及时更新mongodb数据库中user的状态 var Redis = require('ioredis'); var redis = ne ...

  3. Linux系统下Redis缓存安装配置

    Redis是一个高性能的key-value数据库,现时越来越多企业与应用使用Redis作为缓存服务器.楼主是一枚JAVA后端程序员,也算是半个运维工程师了.在Linux服务器上搭建Redis,怎么可以 ...

  4. Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)

    Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...

  5. Linux--5 mariadb和redis的安装

    一.MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可. 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL ...

  6. Redis - (Linux)安装与配置

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: 1:Redis支持数据的持久化,可以将内存 ...

  7. Redis:Redis的安装

    Redis优势 性能极高             – Redis能读的速度是110000次/s,写的速度是81000次/s . 丰富的数据类型  – Redis支持二进制案例的 Strings, Li ...

  8. redis的安装配置

    主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7  到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...

  9. Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

随机推荐

  1. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

  2. K8S 容器的资源需求、资源限制

    容器的资源需求,资源限制 requests:需求,最低保障: limits:限制,硬限制: CPU: 1 颗逻辑 CPU 1=1000,millicores 500m=0.5CPU QoS: Gura ...

  3. 2018-08-11 中文代码示例之Spring Boot 2.0.3问好

    上次试用Spring Boot还是两年前: 中文代码示例之Spring Boot 1.3.3演示. 打算用在一个讨论组内小项目上, 于是从官网Building an Application with ...

  4. 10.Odoo产品分析 (二) – 商业板块(5) –日历(1)

    查看Odoo产品分析系列--目录 日历模板也可以理解为一个日历视图,在分析"销售"模块的日历视图时做过介绍.在这里做一下详细的介绍:  从页面上,它横向分为两个部分,左边的80%显 ...

  5. Android的ToolBar

    ToolBar比ActionBar更加可控,自由.因此,Google 逐渐使用ToolBar来代替ActionBar. 使用ToolBar 1.要引入appCompat_v7支持 2.主题设置为NoA ...

  6. NDK中使用pthread多线程中自己写的一个BUG

    在使用pthread进行NDK中的多线程开发时,自己写了一个BUG, void *darkGrayThread(void *args) { ThreadParam *param = (ThreadPa ...

  7. Android为TV端助力 fragment 的用法以及与activity的交互和保存数据的方法,包括屏幕切换(转载)!

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 1.管理Fragment回退栈 类似与Android系统为Acti ...

  8. The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global- results?,global-exception-mappings?,action*)".

    报错 The content of element type "package" must match "(result-types?,interceptors?,def ...

  9. [20190329]探究sql语句相关mutexes补充2.txt

    [20190329]探究sql语句相关mutexes补充2.txt --//昨天测试sql语句相关mutexes,看看如果出现多个子光标的情况. 1.环境:SCOTT@book> @ ver1P ...

  10. 15个实用的PHP正则表达式

    对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串.这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参考下.在这篇文章里,我 ...