Python_Redis实现数据共享

一、 Redis(中间商缓存)

  1. 简单介绍

    mangodb 直接持久化
    memcache 不能持久化,只能存在内存

    单线程的,异步IO高并发
    需要另外安装redis软件
    或用Python安装redis模块
    redis默认有16个db 有16个select

  2. 基本方法使用:
    select 2 创建新的工作线路
    keys * 查看所有已有关键字key
    set name jim 存入key_word形式数据
    get name 获得key为name的数据
    set name tom ex 2 存入数据且只存活两秒钟
    delete 删除元素
    keys in* 正则化过滤元素
    expire 在一定时间内保留元素
    move 将元素移动到其他的db

  3. 操作

       1) string操作
            set参数:
                ex  过期时间s
                px  过期时间ms
                nx  如果设置为True,只有name不存在时,当前set才操作
                xx  如果设置为True,只有name存在时,当前set才操作
            setnx
                相当于上面的set加nx参数
            setex
                相当于上面的ex参数
            psetex
                ms
            mset
                批量设置数据
            mget
                批量获取数据
            getset
                设置一个新值并返回原来的值
            getrange
                对字符串进行切片
            setrange
                对切片位置进行赋值
            setbit
                对字符串的相应二进制位置进行转换
            bitcount
                返回数据转换成二进制时有几个1
            strlen
                获取字符串长度
            incr login_users
                新增在线用户
            decr login_users
                在线用户离线
            append
                拼接字符串
    
       2) Hash操作
            hset 1 2 3
                设置信息名为1,key为2,value为3
            HGETALL 1
                获取1的所有信息
            HGET 1 2
                获取1的key为2的值
            HKEYS 1
                获取1的所有关键字参数
            HVALS 1
                获取1的所有值参数
            HMSET
                批量设置
            hscan
                在指定范围获取值,过滤取值
            hscaniter
                返回一个迭代器
    
       3) List操作
            lpush listname value1,value2
                将值放入listname列表中,先入后出
            lrange listname 0 -1
                将列表中的值取出
            rpush
                从右面放入列表
            lpushx
                只有当列表存在时才添加元素
            llen
                返回列表长度
            linsert
                在列表中插入元素
            ltrim
                移除列表中元素
            RPOPLPUSH
                从一个列表取最右面的元素从左面添加到另一个列表
            BLPOP
                删除并返回列表中的最左面的元素
            BRPOPLPUSH
                从一个列表中取出最左面元素并在原列表中删除它
    
        4) Set操作
            sadd
                向集合中添加元素
            SMEMBERS
                获取所有集合中元素
            scount
                获取集合中元素个数
            sdiff
                删除集合中另一个集合的元素
            SISMEMBER
                检查集合中是否有某一元素
            smove
                从集合中移动元素
            srandmember
                从集合中随机获取元素
            srem
                从集合中删除指定元素
            sunion
                取并集
            sscan
                用条件获取集合中元素
            spop
                获取集合中最后面的一个元素
        5)Sort Set 操作
            zadd
                添加元素
            zrange
                过滤取出元素
            zcard
                获取集合中元素的数量
            zcount
                获取集合中指定分数段的元素
            zrank
                获取集合中某个元素的排行
            zrem
                删除集合中指定元素
            zremrangebyrank
                按排行删除元素
            zinterstore
                取集合的交集,并将对应元素的分数加在一起
    
  4. 管道

# Author : Xuefeng

import redis
import time

# r = redis.Redis(host="localhost", port=9000)

pool = redis.ConnectionPool(host="localhost", port=9000, db=5)

r = redis.Redis(connection_pool=pool)

pipe = r.pipline(transation=True)
r.set("bar", "hello")
time.sleep(10)
r.set("fun", "world")
# print(r.get("bar"))

pipe.execute()
  1. 发布订阅
  2. 附录
    ord() 取ASCII码
    bin() 取二进制
setbit与bitcount组合统计在线人数:
用setbit置某一位为1表示用户在线
用bitcount统计所有1的个数即在线人数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值