python 操作redis数据
python 操作redis 各种类型的数据
# encoding:utf-8
import redis
import time def main():
"""
redis-cli -h 127.0.0.1 -a test321
"""
redis_host = "127.0.0.1"
redis_password = "test321"
redis_cli = redis.StrictRedis(host=redis_host, password=redis_password)
try:
key = "TEST_KEY_1484"
# string
print redis_cli.delete(key)
print redis_cli.set(key, "hello")
print redis_cli.get(key)
print redis_cli.append(key, "world")
print redis_cli.get(key)
print redis_cli.strlen(key)
# timeout
print redis_cli.delete(key)
print redis_cli.setex(key, 10, "hello")
print redis_cli.get(key)
print redis_cli.ttl(key)
# time.sleep(10)
print redis_cli.get(key)
# not set
print redis_cli.delete(key)
print redis_cli.setnx(key, "hello") # 设置key为hello
print redis_cli.setnx(key, "world") # 设置key为world,key已经有值,设置失败
print redis_cli.get(key) # 只能得到第一次设置的值
print redis_cli.setrange(key, 20, "") # 从20位置开始替换,若索引值超过原值长度,则补0
print redis_cli.getrange(key, 1, -1) # 获取1到-1(最后)的子串
print redis_cli.mset({"key1":1, "key2":2, "key3":3})
print redis_cli.mget("key1", "key2", "key3")
print redis_cli.msetnx({"key3":7, "key4":8, "key5":9}) # 已经有值的key会设置失败,从而导致整次设置失败
print redis_cli.mget("key1", "key2", "key3", "key4", "key5") # integer
print redis_cli.delete(key)
print redis_cli.set(key, 1)
print redis_cli.incr(key) # 累加1
print redis_cli.incr(key, 2) # 累加2
print redis_cli.incrby(key, 5) # 累加5
print redis_cli.decr(key) # 累减1
print redis_cli.decr(key, 3) # 累减3
print redis_cli.getset(key, 0) #获取旧值,并获取新值,一次原子操作 # list
print redis_cli.delete(key) # 删除key
print redis_cli.lpush(key, 1,2,3,4,5) # 从左添加元素,若key不存在添加key
print redis_cli.lpushx(key, 6) # 从左添加元素,返回添加后元素个数,若key不存在不做任何操作,返回0, 只能添加一个元素
print redis_cli.lpop(key) # 弹出left头部元素
print redis_cli.llen(key) # 获取链表长度
print redis_cli.lrange(key, 0, -1) # 取从位置0开始到位置-1(最后)结束的元素。
print redis_cli.lrem(key, 1, 1) # 从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
print redis_cli.lrem(key, 1, 1) # 从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
print redis_cli.lset(key, 1, 2) # 将左起索引值为1的元素值设置为新值2。
print redis_cli.lindex(key, 1) # 查看左起索引值为1的元素值
print redis_cli.ltrim(key, 0, 2) # 保留左起索引值0到2之间的3个元素,注意第0个和第2个元素均被保留。
ele1 = redis_cli.lindex(key, 1) # 获取左起索引值为1的元素值
print redis_cli.linsert(key, "after", ele1, 88) # 在1号元素后插入元素88
print redis_cli.lrange(key, 0, -1)
print redis_cli.linsert(key, "before", ele1, 99) # 在1号元素前插入元素99
print redis_cli.lrange(key, 0, -1)
# r
print redis_cli.delete(key)
print redis_cli.rpush(key, 1,2,3,4,5)
print redis_cli.lrange(key, 0, -1)
print redis_cli.rpushx(key, 6)
print redis_cli.lrange(key, 0, -1)
print redis_cli.rpop(key) # 从最右po出元素
print redis_cli.lrange(key, 0, -1)
newkey = key+"new"
print redis_cli.lpush(key, 1,1)
print redis_cli.rpoplpush(key, newkey) # 从key尾部po出元素到newkey头部
print redis_cli.lrange(key, 0, -1)
print redis_cli.lrange(newkey, 0, -1) # set
print redis_cli.delete(key)
print redis_cli.sadd(key, 1,2,3,4,5) # 添加、设置成员
print redis_cli.smembers(key) # 获取成员
print redis_cli.scard(key) # 获取成员数量
print redis_cli.sismember(key, 4) # 判断是否包含该成员
print redis_cli.srandmember(key) # 随机获取一个成员,成员依然在Set中存在
print redis_cli.smembers(key) # 查看成员
print redis_cli.spop(key) # 从尾部弹出一个元素,由于是Set所以得到并不是之前插入的第一个或最后一个成员。
print redis_cli.smembers(key) # 查看成员
print redis_cli.srem(key, 1) # 删除一个成员
print redis_cli.smembers(key) # 查看成员
key1 = key+"B"
print redis_cli.sadd(key1, 9,8,7)
print redis_cli.smove(key, key1, 2) # 将2从key移到key1
print redis_cli.smove(key, key1, 2) # 将2从key移到key1, 由于此时key中没有2,移动失败
print redis_cli.smembers(key) # 查看成员
print redis_cli.smembers(key1) # 查看成员
# 与、或、非
key2 = key+"C"
print redis_cli.delete(key)
print redis_cli.sadd(key, 1,2,3) # 添加、设置成员
print redis_cli.sadd(key1, 1,4,5) # 添加、设置成员
print redis_cli.sadd(key2, 3,6,9) # 添加、设置成员
print redis_cli.sinter(key, key1, key2) # 取交集
interkey = key+"inter"
print redis_cli.sinterstore(interkey, key, key1, key2) # 取交集并存储
print redis_cli.delete(interkey)
print redis_cli.sunion(key, key1, key2) # 取并集
unionkey = key+"unionkey"
print redis_cli.sinterstore(unionkey, key, key1, key2) # 取并集并存储
print redis_cli.delete(unionkey)
print redis_cli.sdiff(key, key1, key2) # 取非,key和key1相比,再用这个结果继续和key2进行差异比较
notkey = key+"not"
print redis_cli.sdiffstore(unionkey, key, key1, key2) # 取非,并存储
print redis_cli.delete(notkey)
# Sorted-Sets和Sets类型极为相似,各种操作命令也相似
print redis_cli.delete(key)
print redis_cli.zadd(key, 1, "one", 2, "two", three=3, four=4) # 添加、设置成员
print redis_cli.zcard(key) # 获取成员数量
print redis_cli.zcount(key, 1, 2) # 获取分数满足表达式1 <= score <= 2的成员的数量
print redis_cli.zscan(key, match="*o*") # 查看匹配的成员
print redis_cli.zrange(key, 0, -1) # 查看所有成员。
print redis_cli.zrange(key, 0, -1, withscores=True) # WITHSCORES选项表示返回的结果中包含每个成员及其分数,否则只返回成员。
print redis_cli.zrank(key, "one") # 查看成员one的索引位置
# print redis_cli.zrem(key, "one", "two") # 删除成员one和two,返回实际删除成员的数量。
print redis_cli.zscore(key, "one") # 获取成员one的分数。返回值是字符串形式。
print redis_cli.zincrby(key, "one", 2) # 将成员one的分数增加2,并返回该成员更新后的分数。
print redis_cli.zincrby(key, "one", -1) # 将成员one的分数增加-1,并返回该成员更新后的分数。
print redis_cli.zrange(key, 0, -1, withscores=True)
print redis_cli.zrangebyscore(key, 1, 3, start=1, num=2, withscores=True) # 获取分数满足表达式1 <= score <= 3的成员。
print redis_cli.zrangebyscore(key, 1, 3, 1, 2, True) # 获取分数满足表达式1<= score<= 3的成员。从1开始取2个,同时返回分数
# dict
print redis_cli.delete(key)
except Exception as e:
print e.message
finally:
print redis_cli.delete(key)
return None if __name__ == "__main__":
main()
github:https://github.com/luohuaizhi/test/blob/master/testRedisData.py
python 操作redis数据的更多相关文章
- python操作redis数据
一.环境安装 1.redispy安装 (automatic) C:\Users\Administrator>pip install redis 2.检测是否安装成功 (automatic) C: ...
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
- 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型
python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...
- Python—操作redis
Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...
- python——操作Redis
在使用django的websocket的时候,发现web请求和其他当前的django进程的内存是不共享的,猜测django的机制可能是每来一个web请求,就开启一个进程去与web进行交互,一次来达到利 ...
- Python操作Redis、Memcache、RabbitMQ、SQLAlchemy
Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含 ...
- 数据库之redis篇(3)—— Python操作redis
虽然前面两篇已经说了redis的一些配置安装什么的,篇幅有点长,可能看完了也不知道怎么操作,这里再浓缩一下: 什么是redis redis完全开源免费的,遵守BSD协议,是一个高性能的非关系型key- ...
- python操作redis命令
Python操作redis from redis import StrictRedis, ConnectionPoolredis_url="redis://:xxxx@112.27.10.1 ...
- Python操作Redis及连接方式
前沿:随着互联网的高速发展,数据变得越来越重要,Python成为了人工智能的热门语言,而Nosql数据库已成为日常开发用品. 今天要写的是Python操作Redis Redis的安装我就不介绍了,你可 ...
随机推荐
- Codeforces 1198E Rectangle Painting 2 最小点覆盖(网络流)
题意:有一个n * n的棋盘,每个棋盘有某些矩形区域被染成了黑色(这些矩形区域有可能相交),问把所有黑色区域染成白色的最小花费是多少?你每次可以选择把一个矩形区域染成白色,花费是染色的矩形区域长和宽的 ...
- 最大公因数数gcd模板
首先蒟蒻是在大佬的博客里学习的代码,代码风格多有相似之处,大佬博客https://www.cnblogs.com/lMonster81/p/10433902.html 最大公因数那,顾名思义就是两个数 ...
- 【vlfeat】O(n)排序算法——计数排序
今天想在网上找一个实现好的er算法来着,没啥具体的资料,无奈只能看vlfeat的mser源码,看能不能修修补补实现个er. 于是,看到某一段感觉很神奇,于是放下写代码,跑来写博客,也就是这段 /* - ...
- OpenCV常用基本处理函数(4)简单变换,阈值等
几何变换 缩放 img=cv2.imread('messi5.jpg') # 下面的 None 本应该是输出图像的尺寸,但是因为后边我们设置了缩放因子 # 因此这里为 None res=cv2.res ...
- Laravel 事务中使用悲观锁
laravel 提供了方便快捷的数据库事务使用方式,在使用中遇到过几个容易混淆和被误导的地方,这里做个记录,希望哪里写的不对的地方各位大神指点一下 laravel 事务分为手动方式和自动方式. 但如果 ...
- table 中 当前行变量的获取
- Linux文件归档工具——cpio
一cpio的介绍 功能:复制文件从或到归档 cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件. cpio [选项] > 文件 ...
- 【LeetCode 32】最长有效括号
题目链接 [题解] 设dp[i]表示以第i个字符结尾的最长有效括号的长度. 显然只要考虑s[i]==')'的情况 则如果s[i-1]=='(',则dp[i] = dp[i-2]+2; 如果s[i-1] ...
- Java中如何修改Jar中的内容
一.摘要 好长时间没写blog了,之前换了一家公司.表示工作更有战斗力了,可惜就是没时间写文章了.在这段时间其实是遇到很多问题的,只是都是记录下来,并没有花时间去研究解决.但是这周遇到这个问题没办法让 ...
- Docker Machine 管理-安装docker-machine(15)
前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的.但在真正的环境中会有多个 host,容器在这些 host 中启动.运行.停止和销毁,相关容器会通过网络 ...