前言

前面介绍了在数据库命令行直接操作redis,现在学习使用python的redis包来操作redis,本人安装的是redis==2.10.6;

系列文章

python与redis的交互

  • 安装:

环境:Ubuntu16.04;redis-4.0.6

$ sudo pip redis
  • 测试
$ ipython

import redis    # 出现版本信息,安装成功

redis实例化对象

import redis
r1 = redis.Redis()
r2 = redis.StrictRedis() # redis有上面两个类可以建立连接对象,用法几乎一样,推荐使用StrictRedis. r = redis.StrictRedis(host='localhost', # 默认ip为127.0.0.1
port=6379, # 默认端口6379
db=0, # 默认数据库0
password=None,) # 默认没有密码

redis操作string类型

print(con.set('num', '3'))  # string类型的插入键值对,参数key,value;返回true或False
print(con.setex('name',3,'xiaobai')) # 设置一个有时间的键值对,返回true或false
print(con.setnx('my','hh')) # 设置单个不存在的键值对
print(con.mset({'my':'cai'})) # 设置多个键值对,返回true或false
print(con.msetnx({'you':'tan','my':'wan'})) # 为不存在的键设置值,如果有一个已经存在,整个会失败,返回false
print(con.get('num'))       # 获取键的值,返回二进制的数据
print(con.getrange('name', 0, 2)) # 获取子串,参数key、下标范围
print(con.strlen('name')) # 获取值的长度
print(con.exists('name')) # 是否存在这个键,针对所有的类型
print(con.incr('num'))      # 值自加操作,返回计算后的结果值
print(con.incr('num','23')) # 值加一个整数操作,返回计算后的结果值,
print(con.incrby('num', '5')) # 值加一个整数操作,返回计算后的结果值
print(con.incrbyfloat('num', '3.5')) # 值加一个浮点数操作,返回计算后的结果值
print(con.incrbyfloat('num', '-3.5')) # 值加一个浮点数操作,返回计算后的结果值
print(con.decr('num')) # 值自减操作,返回计算后的结果值
print(con.decr('num', '5')) # 值减一个整数操作,返回计算后的结果值
print(con.append('boy', 'tom')) # 字符串拼接,参数key value,返回当前字符串的长度
print(con.setrange('name', '5', 'hh')) # 字符串替换字符,参数为键、偏移量、值,返回当前字符串的长度
print(con.delete('my','name'))  # 删除多个键值对,获取删除成功的数量

redis操作list类型

print(con.rpush('list', 'v1', 'v2'))  # 从列表的首部插入,参数键、值,值可多个,返回列表的长度
print(con.lpush('list', 'vx')) # 从列表的尾部插入,参数键、值,值可多个,返回列表的长度
con.lset('list',0,20) # 在列表的下标0位置插入20
print(con.lrange('list',0,-1))  # 获取范围内的元素,返回一个列表,原来的列表不变

print(con.lpop('list'))   # 从列表首部弹出一个元素
print(con.rpop('list')) # 从列表尾部弹出一个元素
print(con.blpop('list',3)) # 从列表首部弹出一个元素,在3秒内阻塞等待,默认为0秒;没有获取值返回none
print(con.brpop('list', 3)) # 从列表右端弹出一个元素,在3秒内阻塞等待,默认为0秒
print(con.rpoplpush('list', 'list1')) # 将list最右端的元素移到list1的最左端,返回移动的元素
# 将list最右端的元素移到list1的最左端,返回移动的元素,等待时间3秒,默认0秒
print(con.brpoplpush('list', 'list1', 3))
print(con.ltri('list', 2, -1)) # 剪切列表,返回剪切后的列表,改变了原来的列表

redis操作hash

print(con.hset('fruit','apple','red')) # 设置单个散列键值对,参数name,key,value,返回true或false
print(con.hmset('color', {'blue':'good','green':'bad'})) # 对个散列键值对,返回true或false
print(con.hsetnx('goods', 'color', 'white'))
print(con.hdel('color','blue'))  # 删除散列的某些键值对,至少成功一个返回true,其他返回False
print(con.hget('color', 'green')) # 获取散列的单个值
print(con.hmget('color', 'green', 'blue')) # 获取散列的多个值
print(con.hkeys('color')) # 获取散列的所有的键
print(con.hvals('color')) # 获取散列的所有的值
print(con.hgetall('color')) # 获取散列的所有的键值对,返回一个二进制编码的字典
print(con.hexists('color','red')) # 判断一个散列是否存在某个键,返回true或False
print(con.hstrlen('color', 'blue')) # 获取值字符串的长度,返回一个数字 print(con.hlen('color')) # 获取该散列的键值对数量
print(con.hincrby('color', 'blue', 3)) # 将散列的值加一个整数,默认加1
print(con.hincrbyfloat('color', 'blue', 3.5)) # 加一个浮点数,默认为1.0

redis操作集合

print(con.sadd('name', 'a', 'b'))  # 添加元素,返回添加的个数
print(con.srem('name','a'))  # 移除元素,返回移除元素的数量
print(con.spop('name')) # 随机的移除一个元素
print(con.smove('name','name1','bb')) # 将bb从name移到name1,如果name1不存在,创建;返回true或false
print(con.smembers('name'))  # 返回集合所有的元素,以字典的形式
print(con.scard('name')) # 返回集合元素的个数
print(con.sismember('name','b')) # 查看元素是否在集合中,返回true或false

其他redis函数

con.flushdb() # 清除当前数据库
con.flushall() # 清空当前redis con.expire('name',3) # 单位为秒,为键设置过期时间
con.time() # 查看服务器时间,返回时间戳和当前已过去的微秒数
con.ttl(key) # 查看键还有多少生存期,时间单位为秒
con.keys() # 查看所有的键,默认参数为'*'
  • 按命令行的方式写redis
con.execute_command('SET','my', 'hhhh')
# 第一个参数是命令操作,如get,hget,set等;

管道

管道可以缓存命令,减少客户端与redis-server交互的次数

# 创建一个管道值
pipe = con.pipeline()
pipe.get('name')
pipe.set('name','xiao')
# 提交
pipe.execute()

参考

redis基础之python连接redis(五)的更多相关文章

  1. python连接redis,redis集群

    python连接redis: import redis r = redis.Redis(host='192.168.50.181',port=6002) r.set('user_phone_14900 ...

  2. python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...

  3. python连接redis哨兵集群

    一.redis集群模式有多种, 哨兵模式只是其中的一种实现方式, 其原理请自行谷歌或者百度 二.python 连接 redis 哨兵集群 1. 安装redis包 pip install redis 2 ...

  4. python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis

    今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...

  5. Python 连接 redis 模块

    redis 模块使用可以分类为: 连接方式 连接池 操作 String操作 Hash操作 List操作 Set操作 Sort Set操作 管道 发布订阅 (1)操作模式 redis提供两个类Redis ...

  6. Python连接Redis连接配置

    1. 测试连接: Python 2.7.8 (default, Oct 20 2014, 15:05:19) [GCC 4.9.1] on linux2 Type "help", ...

  7. python连接redis

    一.首先,要下载redis pip3 install redis 二.连接redis import redis #拿到一个redis的链接 conn=redis.Redis('127.0.0.1',6 ...

  8. python连接redis sentinel集群

    安装 python redis 客户端 pip install redis #!/usr/bin/env python # -*- coding:utf-8 -*- #!/usr/bin/env py ...

  9. 【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connection reset by peer"

    问题描述 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connecti ...

随机推荐

  1. layer获取iframe内容

    var layer1 = function() { layer.open({ type: 2, title: '标题', maxmin: false, area: ['780px', '600px'] ...

  2. LoadRunner录制:集合点

    背景 LoadRunner 执行过程中,有的user 跑的快,有的跑的慢.就导致user1可能还在执行 登录操作呢,user2都已经开始执行查询操作了. 但是在进行负载测试时 ,我们又需要让很多用户同 ...

  3. android设备上运行i-jetty服务

    android设备上运行i-jetty服务: 1) i-jetty安装 本人小菜一个,i-jetty源码有好几个文件,不知道怎么运行起来,于是找了一个现成可运行的i-jetty工程(感谢这位同学的分享 ...

  4. 算法笔记_175:历届试题 蚂蚁感冒(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它 ...

  5. sqlserver2008r2安装

  6. spring mysql多数据源配置

    spring mysql多数据源配置 @Configuration public class QuartzConfig { @Autowired private AutowireJobFactory ...

  7. EXCEPTION-javaBean

      CreateTime--2016年11月24日14:29:43Author:Marydon 声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇 ...

  8. oracle date日期类型 精析

      一.date 1.date.sysdate格式说明 展示 date类型,展示格式既可以为:YYYY/MM/DD,也可以为YYYY/MM/DD HH24:MI:SS: 其存储格式只有一种:YYYY/ ...

  9. 〖Windows〗zigbee实验之cygwin编译tinyos.jar编译出错的解决方法

    1. 使用的cygwin安装包下载地址:cygwin-files.zip 2. 使用的一些rpm安装包的下载地址:cygwin_cc2430_rpms.zip 3. cygwin的默认安装目录是:C: ...

  10. jquery toastmessage (Jquery类似安卓消息提示框)

    Do you wanna have some toasts ? jquery-toastmessage-plugin is a JQuery plugin which provides android ...