博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis 补充
阅读量:4548 次
发布时间:2019-06-08

本文共 3751 字,大约阅读时间需要 12 分钟。

Redis 补充


Redis 的主要用途     数据库 缓存和消息中间件    相当于一个字典

1220788-20180321172054017-822395189.png

数据库切换 select 1 (默认36个数据库 默认在0)

1 基本数据类型

字符串散列 hashes列表集合有序集合  string 是基本数据类型      是 redis的基本数据类型      最大能存储 512 MB的数据      string 类型是二进制安全的  -- 可以为任何数据 数字 图片 序列化 对象

2 相关的操作

(1)字符串:

设置键值:        set key value    获取 值        get key --value        mget key1,key2 -- value1,value2 # 获取多个值    运算:        incr key  ---    将 key 对应的 value 加 1        incrby key increment   将 key 对应的 value 加 increment        decr key  ----  将 key 对应的 value 减 1        decrby key decrment  将 key 对应的 value 减 decrement    追加--在原有的基础上添加 值:        append key value  在原有的基础上添加 值    字符长度:        strlen key

(2)key键命令:

keys *  查看当前所有的key  通配符 *    keys *1*  正则匹配    exits key  是否存在  1 0  真假    type key 查看键 对应值的属性    expire key seconds   设置 有效时间    ttl key 查看剩余 时间    del key  删除 键值对

{

{QQ截图20180321154756.png(uploading...)}}

(3) 列表

list命令:( 数组-- 两侧都可以进入数据) 一个键维护多个值添加的顺序

设置:

lpush py1 alex    rpush py1 egon    lpushx py1 alex    rpushx py1 egon    linsert py1 before alex name    linsert py1 after egon  male    lrange py1 0 -1 查看所有元素    blpop py1 alex    brpop py1 egon  # 阻塞 时间 timeout    lpop py1     # 不会等待    rpop py2    llen py1   # 列表长度    lindex  py1  index    ltrim py1 0  3  只保留 索引 0到3的数据  其他的都删除

(4)set 命令 (无序 唯一不重复 ):

设置:        sadd key members(可以多个)    删除:        srem key    获取:        smembers key  返回所有的成员        scard key  获取元素个数    交集:        sinter  py1 py2    差集:       sdiff  py1  py2    并集:        suinion py1 py2    判断是否在某个集合中        sismember py1 haha    spop  py1  随机删除一个元素 并返回    srandmember py1 3  随机取出3个元素

(5) hash 散列(对象)

hash 命令:( 存对象 属性+值 )    hash用于    存储 对象 ;  对象的格式是 键值对命令:    设置:        hset key field value  |  hset py  name "allp"        hsetnx key(不重复的散列没如果重复 则不会设置) value         hmset key field value  | hmset hash1 name apple age 12    获取        hget py name -- allp        hmget py  key1 key2 |  hmget hash1 name age            hgetall py 获取所有的属性和值 --- 奇数的是属性  偶数的是值        hkeys py 获取所有的属性        hvals py 获取所有的值        hlen py  属性的个数        hstrlen py name   ---某个属性对应的值得长度        hexists py name ----是否存在属性    删除:        hdel py name   ---删除某一个属性

补充:

在 设置值的时候 hmset news:sport:1 title NBA content .......

1220788-20180321172054187-1737892916.png

(6)zset 有序集合: sorted set

按照权重排序

设置:           zadd myset 权重 "xxx"  权重 "ooo"           zadd zcourse_set 0 scrapy 1 django 5 scrapy-redis      获取:            zrangebyscore zcourse_set 0 1        # 权重            zrange myset start stop      #   zrange py1 0 -1            zcard myset  ---查看元素个数            zcount myset min max --返回权重 在 min 和max之间值 的 元素个数            zscore myset xxx 查看元素的权重

左侧网站数量(爬虫数量)

----  redis  -- incr('name')    数量经常改变的 --->>  redis    在爬虫爬取数据的时候 item的时候 --->>> redis                                        redis_cli = redis.StrictRedis()                                        redis_cli.incr('jobbole_counts')    redis_cli.get("jobbole_counts")

热门搜索 zset -- topn的操作 -- zincrby

搜索关键词之后        redis_cli.zincrby("search_keywords_set",keywords)        按照逆序排列        topn_search = redis_cli.zrevrangebyscore("search_keywords","+inf","-inf",start=0,num=5)

3 python api |redispy

安装

pip install redis

基本使用:

import redisr = redis.StrictRedis(port=6379,host='localhost')  # 新版本的redis命令# r = redis.Redis(port=6379,host='localhost')  # 兼容老版本user = r.get('animal')print(user)

hmset     dic = {    'name':'alex',    'age':15    }    ret = client.hmset('users',dic)hmget    ret = client.hmget('users',['name','age'])lpush    l1 = ['a','b']    client.lpush('list1',*l1)

连接池:

redis 自带有连接池:        也可以重新指定:            pool = redis.ConnectionPool(port=6379,host='localhost')            client = redis.Redis(connection_pool=pool)

pipelines: 批量进行命令处理

pipe = client.pipeline()pipe.set('','')pipe.set('','')pipe.get('')

转载于:https://www.cnblogs.com/big-handsome-guy/p/8618164.html

你可能感兴趣的文章
2018年11月14日 学习字符串用法2
查看>>
2019年5月26日 re模块2
查看>>
Mac显示器不亮
查看>>
luogu P2312 解方程
查看>>
Cordova开发速记
查看>>
Chrome开发工具
查看>>
MySQL 的 RowNum 实现
查看>>
网络工程师应该掌握的44个路由器问题
查看>>
windows 控制台下运行cl命令
查看>>
(七十八)使用第三方框架INTULocationManager实现定位
查看>>
LeetCode问题:搜索插入位置
查看>>
JVM基础学习之基本概念、可见性与同步
查看>>
UML入门
查看>>
CodeForces - 524F And Yet Another Bracket Sequence
查看>>
python学习笔记-day10-2【多进程,多线程】
查看>>
Atitit 图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)...
查看>>
Android Camera——拍照(转自http://vaero.blog.51cto.com/4350852/779942)
查看>>
Java Web项目移植
查看>>
11月的第一天
查看>>
2011简单总结
查看>>