百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 操作 redis(python 操作同花顺)

off999 2024-11-04 13:16 29 浏览 0 评论

连接 Redis

import redis

连接方式:redis提供了2个方法

1:StrictRedis:实现大部分官方的命令

2:Redis:是StrictRedis的子类,用于向后兼容旧版的redis。

官方推荐使用StrictRedis方法。

举例(普通连接):

import redis

#decode_responses=True 自动解码

r = redis.Redis(host='127.0.0.1',port=6379,password='123456',db=0,decode_responses=True) #默认数据库为0

r = redis.StrictRedis(host='10.10.2.14',port=6379,password='123456',decode_responses=True)

连接池:connection pool

管理对一个redis server的所有连接,避免每次建立,释放连接的开销。默认,每个redis实例都会维护一个自己的连接池,可以直接建立一个连接池,作为参数传给redis,这样可以实现多个redis实例共享一个连接池。

举例(连接池):

pool = redis.ConnectionPool(host='127.0.0.1',port=6379,password='123456',decode_responses=True)

r = redis.Redis(connection_pool=pool)

一 、STRING 字符串的操作

1. r.set 设置值

2. r.get 获取值

3. mset 批量设置值

4. mget(keys, *args) 批量获取

5. getset 设置新值,打印原值

6. getrange 根据字节获取子序列

7. setrange 修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加

8. strlen(name) 返回name对应值的字节长度

9. incr 值的累加 amount为累加的值

10. append 在name对应的值后面追加内容

11.type 查看类型

案例

页面点击数

假定我们对一系列页面需要记录点击次数。例如论坛的每个帖子都要记录点击次数,而点击次数比回帖的次数的多得多。如果使用关系数据库来存储点击,可能存在大量的行级锁争用。所以,点击数的增加使用redis的INCR命令最好不过了。

? 当redis服务器启动时,可以从关系数据库读入点击数的初始值(1237这个页面被访问了34634次)

每当有一个页面点击,则使用INCR增加点击数即可。

二、Hash 操作

redis中的Hash 在内存中类似于一个name对应一个dic来存储

1. hset name对应的hash中设置一个键值对(不存在,则创建,否则,修改)

2. hget 在name对应的hash中根据key获取value

3. hgetall 获取name对应hash的所有键值

4. hmset 在name对应的hash中批量设置键值对,mapping:字典

5. hmget 在name对应的hash中获取多个key的值

6.hlen 获取hash中键值对的个数

hkeys 获取hash中所有的key的值

hvals 获取hash中所有的value的值

7. hexists 检查name对应的hash是否存在当前传入的key

8. hdel 删除指定name对应的key所在的键值对

9. hincrby 自增hash中key对应的值,不存在则创建key=amount(amount为整数)

10.hincrbyfloat 自增hash中key对应的值,不存在则创建key=amount(amount为浮点数)

自增hash中key对应的值,不存在则创建key=amount(amount为浮点数)

hincrbyfloat(name, key, amount=1.0)

案例

使用hash类型保存多样化对象,类似二维表结构

当有大量类型文档的对象,文档的内容都不一样时,(即“表”没有固定的列),可以使用hash来表达。

三、List 操作

redis中的List在内存中按照一个name对应一个List来存储

1. lpush 在name对应的list中添加元素,每个新的元素都添加到列表的最左边

2.rpush 同lpush,但每个新的元素都添加到列表的最右边

3. lpushx 在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边

4. rpushx 在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边

5. llen name对应的list元素的个数

6. linsert 在name对应的列表的某一个值前或后插入一个新值

7. r.lset 对list中的某一个索引位置重新赋值

8. r.lrem 删除name对应的list中的指定值

9. lpop 移除列表的左侧第一个元素,返回值则是第一个元素

10. lindex 根据索引获取列表内元素

11. lrange 分片获取元素

12. ltrim 移除列表内没有在该索引之内的值(裁剪)

13. rpoplpush(src, dst) 从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边

四、Set 操作

Set集合就是不允许重复的列表

1. sadd(name,values) 给name对应的集合中添加元素

2. smembers(name) 获取name对应的集合的所有成员

3. scard(name) 获取name对应的集合中的元素个数

4. sdiff(keys, *args) 在第一个name对应的集合中且不在其他name对应的集合的元素集合

5. sinter(keys, *args) 获取多个name对应集合的并集

6.sismember 检查value是否是name对应的集合内的元素

7. smove(src, dst, value) 将某个元素从一个集合中移动到另外一个集合

8. spop(name) 从集合的右侧移除一个元素,并将其返回

9. srandmember(name, numbers) 从name对应的集合中随机获取numbers个元素

10. srem(name, values) 删除name对应的集合中的某些值

11. sunion(keys, *args) 获取多个name对应的集合的并集

12. sunionstore(dest,keys, *args) 获取多个name对应的集合的并集,并将结果保存到dest对应的集合中

案例

社交圈子数据

在社交网站中,每一个圈子(circle)都有自己的用户群。通过圈子可以找到有共同特征(比如某一体育活动、游戏、电影等爱好者)的人。当一个用户加入一个或几个圈子后,系统可以向这个用户推荐圈子中的人。

? 我们定义这样两个圈子,并加入一些圈子成员。

获取一个圈子的成员

可以使用集合运算来得到几个圈子的共同成员:

五、有序集合 zset

有序集合:

在集合的基础上,为每元素排序,元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序。

1. zadd(name, args, *kwargs)

2. zcard(name) 获取有序集合内元素的数量

3. zcount(name, min, max) 获取有序集合中分数在[min,max]之间的个数

4. zincrby(name, value, amount) 自增有序集合内value对应的分数

5. zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)

6. zrevrange(name, start, end, withscores=False, score_cast_func=float)

7. zrank(name, value)、zrevrank(name, value)

8. zscore(name, value) 获取name对应有序集合中 value 对应的分数

9. zrem(name, values) 删除name对应的有序集合中值是values的成员

10. zremrangebyrank(name, min, max) 根据排行范围删除

11. zremrangebyscore(name, min, max) 根据分数范围删除

12. zinterstore(dest, keys, aggregate=None)

13. zunionstore(dest, keys, aggregate=None)

其他常用操作

1. delete(*names) 根据name删除redis中的任意数据类型

2. exists(name) 检测redis的name是否存在

3. keys(pattern='*') 根据* ?等通配符匹配获取redis的name

4. expire(name ,time) 为某个name设置超时时间

5. rename(src, dst) 重命名

6. move(name, db)) 将redis的某个值移动到指定的db下

7. randomkey() 随机获取一个redis的name(不删除)

8. type(name) 获取name对应值的类型

作者:rottengeek

来源:https://segmentfault.com/a/1190000015191422

相关推荐

大文件传不动?WinRAR/7-Zip 入门到高手,这 5 个技巧让你效率翻倍

“这200张照片怎么传给女儿?微信发不了,邮箱附件又超限……”62岁的张阿姨对着电脑犯愁时,儿子只用了3分钟就把照片压缩成一个文件,还教她:“以后用压缩软件,比打包行李还方便!”职场人更懂这...

电脑解压缩软件推荐——7-Zip:免费、高效、简洁的文件管理神器

在日常工作中,我们经常需要处理压缩文件。无论是下载软件包、接收文件,还是存储大量数据,压缩和解压缩文件都成为了我们日常操作的一部分。而说到压缩解压软件,7-Zip绝对是一个不可忽视的名字。今天,我就来...

设置了加密密码zip文件要如何打开?这几个方法可以试试~

Zip是一种常见的压缩格式文件,文件还可以设置密码保护。那设置了密码的Zip文件要如何打开呢?不清楚的小伙伴一起来看看吧。当我们知道密码想要打开带密码的Zip文件,我们需要用到适用于Zip格式的解压缩...

大文件想要传输成功,怎么把ZIP文件分卷压缩

不知道各位小伙伴有没有这样的烦恼,发送很大很大的压缩包会受到限制,为此,想要在压缩过程中将文件拆分为几个压缩包并且同时为所有压缩包设置加密应该如何设置?方法一:使用7-Zip免费且强大的文件管理工具7...

高效处理 RAR 分卷压缩包:合并解压操作全攻略

在文件传输和存储过程中,当遇到大文件时,我们常常会使用分卷压缩的方式将其拆分成多个较小的压缩包,方便存储和传输。RAR作为一种常见的压缩格式,分卷压缩包的使用频率也很高。但很多人在拿到RAR分卷...

2个方法教你如何删除ZIP压缩包密码

zip压缩包设置了加密密码,每次解压文件都需要输入密码才能够顺利解压出文件,当压缩包文件不再需要加密的时候,大家肯定想删除压缩包密码,或是忘记了压缩包密码,想要通过删除操作将压缩包密码删除,就能够顺利...

速转!漏洞预警丨压缩软件Winrar目录穿越漏洞

WinRAR是一款功能强大的压缩包管理器,它是档案工具RAR在Windows环境下的图形界面。该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从Internet上下载的RAR、ZIP及其它类...

文件解压方法和工具分享_文件解压工具下载

压缩文件减少文件大小,降低文件失效的概率,总得来说好处很多。所以很多文件我们下载下来都是压缩软件,很多小伙伴不知道怎么解压,或者不知道什么工具更好,所以今天做了文件解压方法和工具的分享给大家。一、解压...

[python]《Python编程快速上手:让繁琐工作自动化》学习笔记3

1.组织文件笔记(第9章)(代码下载)1.1文件与文件路径通过importshutil调用shutil模块操作目录,shutil模块能够在Python程序中实现文件复制、移动、改名和删除;同时...

Python内置tarfile模块:读写 tar 归档文件详解

一、学习目标1.1学习目标掌握Python内置模块tarfile的核心功能,包括:理解tar归档文件的原理与常见压缩格式(gzip/bz2/lzma)掌握tar文件的读写操作(创建、解压、查看、过滤...

使用python展开tar包_python拓展

类Unix的系统,打包文件经常使用的就是tar包,结合zip工具,可以方便的打包并解压。在python的标准库里面有tarfile库,可以方便实现生成了展开tar包。使用这个库最大的好处,可能就在于不...

银狐钓鱼再升级:白文件脚本化实现GO语言后门持久驻留

近期,火绒威胁情报中心监测到一批相对更为活跃的“银狐”系列变种木马。火绒安全工程师第一时间获取样本并进行分析。分析发现,该样本通过阿里云存储桶下发恶意文件,采用AppDomainManager进行白利...

ZIP文件怎么打开?2个简单方法教你轻松搞定!

在日常工作和生活中,我们经常会遇到各种压缩文件,其中最常见的格式之一就是ZIP。ZIP文件通过压缩数据来减少文件大小,方便我们进行存储和传输。然而,对于初学者来说,如何打开ZIP文件可能会成为一个小小...

Ubuntu—解压多个zip压缩文件.zip .z01 .z02

方法将所有zip文件放在同一目录中:zip_file.z01,zip_file.z02,zip_file.z03,...,zip_file.zip。在Zip3.0版本及以上,使用下列命令:将所有zi...

如何使用7-Zip对文件进行加密压缩

7-Zip是一款开源的文件归档工具,支持多种压缩格式,并提供了对压缩文件进行加密的功能。使用7-Zip可以轻松创建和解压.7z、.zip等格式的压缩文件,并且可以通过设置密码来保护压缩包中的...

取消回复欢迎 发表评论: