Redis 补充
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 补充的更多相关文章
- redis补充和rabbitmq讲解
线程池: redis发布订阅: rabbitMQ: MySQL; python pymysql: python orm SQLAchemy: paramiko: 堡垒机: 1.线程池 1.1 cont ...
- Redis补充
Redis补充 (1)redis基本概念 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set ...
- Redis for OPS 07:Redis 补充说明
写在前面的话 redis 的各种架构搭建暂时就到这里,本文主要用于补充说明 Redis 的一些概念以及配置文件的相关信息. 常用词汇 缓存穿透: 类似热点数据存储 Redis 一样,对于非热点数据存储 ...
- Sword redis补充
Redis 键(key) Redis 键命令用于管理 redis 的键. redis任何数据类型都有key --删除key的命令 redis> del key Redis 事务 Redis 事务 ...
- redis笔记补充
redis补充 这篇文章是redis入门笔记的补充. 1.info命令 用来显示服务的信息. info命令可以跟下面的选项: server: 关于 Redis 服务器的一些信息 clients: 客户 ...
- django - 总结 - redis缓存
八.redis 补充- 操作 - 增删改查 对字典,重新设计结构,增删改查. hmset keys hget scan_iter hgetall import redis import j ...
- spring-session+Redis实现Session共享
关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复 ...
- django做redis缓存
django中应用redis:pip3 install django-redis - 配置 CACHES = { "default": { "BACKEND": ...
- 缓存 memcached 与 redis
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
随机推荐
- Mysql查询结果导出为Excel的几种方法
本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html 具体原文找不到了,此篇是借鉴门户的一篇文章 方法一:查询语句直接输出语法格式: Exampl ...
- 关于shared pool的深入探讨(四)
我们进一步来讨论一下shared pool的处理: 先进行相应查询,获得测试数据: [oracle@jumper udump]$ sqlplus "/ as sysdba" SQL ...
- Read Large Files in Python
I have a large file ( ~4G) to process in Python. I wonder whether it is OK to "read" such ...
- yum速查
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包, 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖 ...
- C#:当前时间转换成文件名
DateTime.Now.ToFileTime().ToString(); 结果是一个字符串,类似:131238643554094913.
- linux命令(6/10):find 命令
Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种.系统时间是指当前Linux Kernel中的时钟, 而硬件时钟则是主板上由电池供电 ...
- Android Gradle 构建工具(Android Gradle Build Tools)是什么?
转载地址:http://mrfu.me/android/2015/07/17/New_Android_Gradle_Build_Tools/ 译者地址:[翻]一览新的 Android Gradle 构 ...
- TNS-12541: TNS:no listener , TNS-12542: TNS:address already in use
查看数据库监听状态不对$ lsnrctl status LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.5.0 - Production on ...
- 洛谷P3393逃离僵尸岛 最短路
貌似一直不写题解不太好QAQ 但是找不到题啊... 随便写点水题来补博客吧 题目不pa了,点链接吧... 点我看题 很明显这是道sb题... 思路: 对于每一个僵尸城市预处理其 s 距离内的城市,然 ...
- JQuery -- Dom操作, 示例代码
1.内部插入节点 * append(content) :向每个匹配的元素的内部的结尾处追加内容 * appendTo(content) :将每个匹配的元素追加到指定的元素中的内部结尾处 * ...