python redis 的基本操作指令
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
redis基本命令和基本用法详解
1.redis连接
2.redis连接池
3.redis基本命令
3.1 string
3.2 hash
3.3 list
3.4 set
3.5 有序set
4.其他常用的操作
5.example
'''
import redis #导入官方包 '''
1.redis conncetion
redis-py 提供两个类的连接方式,Redis和StrictRedis用于实现Redis的命令
trictRedis用于实现大部分官方的命令,并使用官方的语法和命令,
Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py
'''
def redis_connect(): #host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(host= "192.168.10.130", port = 6379, db = 0)
#key是"foo" value是"bar" 将键值对存入redis缓存
r.set('foo', 'Bar')
#取出键foo对应的值
print r.get('foo') '''
2.redis connection pool
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。
'''
def redis_connect_pool(): #host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
pool = redis.ConnectionPool(host='192.168.10.130', port=6379, db = 0)
#建立链接实例
r = redis.Redis(connection_pool=pool)
# key是"foo" value是"bar" 将键值对存入redis缓存
r.set('foo', 'Bar')
# 取出键foo对应的值
print r.get('foo') '''
3.redis基本命令
3.1 string
set(name, value, ex=None, px=None, nx=False, xx=False)
在Redis中设置值,默认,不存在则创建,存在则修改参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,当前set操作才执行
'''
def redis_string(): # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
pool = redis.ConnectionPool(host='192.168.10.130', port=6379, db=0)
# 建立链接实例
r = redis.Redis(connection_pool=pool) #1.ex,过期时间(秒) 这里过期时间是3秒,3秒后键foo的值就变成None
r.set('foo','Bar',ex = 3)
print r.get('foo') #2.px,过期时间(豪秒) 这里过期时间是3豪秒,3毫秒后,键foo的值就变成None
r.set('foo', 'bar',px = 3)
print r.get('foo') #3.nx,如果设置为True,则只有name不存在时,当前set操作才执行 (新建)
r.set('foo', 'bar',nx = True) #4.xx,如果设置为True,则只有name存在时,当前set操作才执行 (修改)
r.set('foo', 'bar',xx = True) #5.setnx(name, value) 设置值,只有name不存在时,执行设置操作(添加)
r.setnx('foo2', 'bar2') #6.setex(naem,value, time) 设置值, 超过过期时间(秒),time后就变为None
r.setex('foo3', 'bar3', 5) #7.psetex(name, time_ms, value) 设置值,超过过期时间(毫秒),值就编程了None
r.psetex('foo', 5000, "bar")
print r.get("foo") #8.mset(*args, **kwargs) 批量的设置值,参数为字典,或者队列
r.mset(k1 = 'v1', k2 = 'v2') #这里k1 和k2 不能带引号 一次设置对个键值对
print r.mget("k1", "k2") #一次取出多个键对的值
print r.mget("k1") #9.mget(keys, *args) 批量获取
r.mget('ylr', 'wupeiqi')
print r.mget("foo", "foo1", "foo2", "k1", "k2") #10.getset(name, value) 设置新值并获取原来的值
print r.getset("foo1", "bar_NEW") #输出的值为旧值bar #11.getrange(key, start, end) 获取子序列
r.set("foo1", "成都市")
print r.getrange("foo1", 0, 2) #切片操作,取前三位字节 #12.setrange(nemw,offset, value) 修改字符串内容,从指定字符串索引开始向后替换
r.setrange("foo1", 1, "aaa")
print r.get("foo1") #值大概为baaanew 原始值为bar_new #13.setbit(name, offset, value) 对key应的值的二进制进行位操作
r.setbit("n1", 7, 1) #将n1对应的值的二进制第7位改为1
作 者:小闪电
出处:http://www.cnblogs.com/yueyanyu/
本文版权归作者和博客园共有,欢迎转载、交流,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。如果觉得本文对您有益,欢迎点赞、欢迎探讨。本博客来源于互联网的资源,若侵犯到您的权利,请联系博主予以删除。
python redis 的基本操作指令的更多相关文章
- redis的基本操作指令
https://www.cnblogs.com/woshimrf/p/5198361.html
- 【docker 一】入门实践、环境部署、基本操作指令、镜像库、数据卷
简述 `docker是如火如荼的容器技术,今后会陆续上传关于微服务技术的学习笔记,希望能和大家一起学习一起分享!` docker环境搭建 1.获取最新版的Docker安装包 $ wget -qO- h ...
- python+redis测试环境搭建
针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...
- java对redis的基本操作,ZZ
java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html
- Python redis 简单介绍
Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...
- 生产消费者模式与python+redis实例运用(中级篇)
上一篇文章介绍了生产消费者模式与python+redis实例运用(基础篇),但是依旧遗留了一个问题,就是如果消费者消费的速度跟不上生产者,依旧会浪费我们大量的时间去等待,这时候我们就可以考虑使用多进程 ...
- 生产消费者模式与python+redis实例运用(基础篇)
根据这个图,我们举个简单的例子:假如你去某个餐厅吃饭,点了很多菜,厨师要一个一个菜的做,一个厨师不可能同时做出所有你点的菜,于是你有两个选择:第一个,厨师把所有菜都上齐了,你才开始吃:还有一个选择,做 ...
- python redis中blpop和lpop的区别
python redis 中blpop返回的是元组对象,因此返回的时候注意 lpop返回的是对象
- windows中实现python,redis服务自动重启(任务计划程序+bat脚本)
需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...
随机推荐
- shiro标签的使用
guest标签 用户没有身份验证时显示相应信息,即游客访问信息. user标签 用户已经身份验证/记住我登录后显示相应的信息. authenticated标签 用户已经身份验证通过, ...
- PHP的new self() 与new static()
参考链接:[PHP中new static()与new self()的区别异同分析],[PHP中new self()和new static()的区别探究],[PHP中static和self的区别] 要点 ...
- 转:Jquery如何获取某个元素前(后)的文本内容?
原文:[解决]Jquery如何获取某个元素前(后)的文本内容? <span> text here... <a id="target_element">百万创 ...
- JavaScript--浅谈DOM操作
JavaScript之浅谈DOM操作 1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两 ...
- Ubuntu-16.04-Desktop +Hadoop2.7.5+Eclipse-Neon的云计算开发环境的搭建(伪分布式方式)
主控终端 主机名 ubuntuhadoop.smartmap.com IP 192.168.1.60 Subnet mask 255.255.255.0 Gateway 192.168.1.1 DNS ...
- mvp 在 flutter 中的应用
在 Android 应用程序开发过程中,我们经常会用到一些所谓的架构方法,如:mvp,mvvm,clean等.之所以这些方法会被推崇是因为他们可以大大的解耦我们的代码的功能模块,让我们的代码在项目中后 ...
- eclipse中DDMS 视图中sdcard中文件导入的处理
首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题. ...
- LeetCode题解之Unique Morse Code Words
1.题目描述 2.题目分析 将words 中的每一个string 直接翻译成对应的Morse 码,然后将其放入 set 中,最后返回set的大小即可,此处利用的set 中元素不重复的性质. 3.代码 ...
- Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prm
由于虚拟机宿主机重启,导致很多虚拟机服务需要重点关注,其中一个DG的从库和另一个report库有OGG同步,所以这里再系统恢复后检查OGG状态的时候,果然目标端的REPLICAT进程处于abend状态 ...
- DataTable拷贝DataRow
一开始,思路是这样的: DataTable dt = SqlHelper.GetTable("select * from Person"); DataTable dt2 = dt. ...