Redis 补充


Redis 的主要用途 

	数据库 缓存和消息中间件

	相当于一个字典

数据库切换 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 .......

(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 redis

r = 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('')

Redis 补充的更多相关文章

  1. redis补充和rabbitmq讲解

    线程池: redis发布订阅: rabbitMQ: MySQL; python pymysql: python orm SQLAchemy: paramiko: 堡垒机: 1.线程池 1.1 cont ...

  2. Redis补充

    Redis补充 (1)redis基本概念 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set ...

  3. Redis for OPS 07:Redis 补充说明

    写在前面的话 redis 的各种架构搭建暂时就到这里,本文主要用于补充说明 Redis 的一些概念以及配置文件的相关信息. 常用词汇 缓存穿透: 类似热点数据存储 Redis 一样,对于非热点数据存储 ...

  4. Sword redis补充

    Redis 键(key) Redis 键命令用于管理 redis 的键. redis任何数据类型都有key --删除key的命令 redis> del key Redis 事务 Redis 事务 ...

  5. redis笔记补充

    redis补充 这篇文章是redis入门笔记的补充. 1.info命令 用来显示服务的信息. info命令可以跟下面的选项: server: 关于 Redis 服务器的一些信息 clients: 客户 ...

  6. django - 总结 - redis缓存

    八.redis 补充- 操作 - 增删改查 对字典,重新设计结构,增删改查. hmset  keys  hget   scan_iter  hgetall  import redis import j ...

  7. spring-session+Redis实现Session共享

    关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复 ...

  8. django做redis缓存

    django中应用redis:pip3 install django-redis - 配置 CACHES = { "default": { "BACKEND": ...

  9. 缓存 memcached 与 redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

随机推荐

  1. SSH 公钥检查

    SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查. 首 ...

  2. 前端基础之jQuery(Day55)

    阅读目录 一 jQuery是什么? 二 什么是jQuery对象? 三 寻找元素(选择器和筛选器) 四 操作元素(属性,css,文档处理) 扩展方法 (插件机制) 一. jQuery是什么? [1]   ...

  3. django生成json

    好方便啊……list什么的一下都变成json了呢! import json from django.core.serializers.json import DjangoJSONEncoder def ...

  4. 第七课 GDB调试 (下)

    1序言: 通过前面一节第六课 GDB调试 (下)文章,可以掌握理解了gdb调试:怎么启动.运行,打断点.查看变量.甚至改变变量等的知识,今天来大概讲解下调试bug的类型. 2知识点: 2.1 就像之前 ...

  5. [笔记]WiX制作msi安装包的例子

    WiX是制作msi安装文件的工具,看了半天文档,感觉没有什么比一个例子更简单粗暴的了. <?xml version="1.0" encoding="UTF-8&qu ...

  6. BZOJ 5312: 冒险

    首先我们考虑,对于And 和 Or 操作,对于操作位上只有And 0 和 Or 1 是有效果的. 我们注意到如果区间内需要改动的操作位上的数字都相同,那么是可以区间取与以及区间取或的. 那其实可以维护 ...

  7. Google ProtocolBuffer

    https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html 1. Protocol Buffers 简介 Protocol Buff ...

  8. mysql中int(M) tinyint(M)中M的作用

    原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/li ...

  9. JDK1.7之Fork/join

    Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架.Fork/Join框架要完成两件事情: 1.任务分 ...

  10. 运维必备技能 WEB 日志分析

    文章节选自<Netkiller Monitoring 手札> 20.2. Web 20.2.1. Apache Log 1.查看当天有多少个IP访问: awk '{print $1}' l ...