set以及相关:

  1. r.set("foo","bar")
  2. print(r.get("foo"))#b'bar'
  3. #在Redis中设置值,默认,不存在则创建,存在则修改
  4. #set(name, value, ex=None, px=None, nx=False, xx=False)
  5. #ex过期时间秒,px过期时间毫秒
  6. #默认后两个基本是无用的nx为true时,只有name不存在时,执行(添加),xx为true时,只有name存在时,执行(更新)
  1. #setnx(name,value)和setex(name, value, time)《过期时间秒》psetex(name, time_ms, value)《过期时间毫秒》是set的子,用处不大
  1. r.mset({"f1":"v1","f2":'v2'})设置多个值

get,getrange

相关:

  1. r.set("name","我是在Py3保存的中文字符串")
  2. ret = r.get("name")        #显示单字节,需要转码
  3. print(chardet.detect(ret))    #chardet.detect检测的字符串越长越准确,越短越不准确。
  4. print(ret.decode("utf-8"))
  5.  
  6. ret = r.getrange("name",,)  #我
  7. ret = r.getrange("name",,)  #(一个汉字三个字节)在
  8. print(ret,ret.decode("utf-8"))

setrange(name, offset, value):从偏移量offset往后替换

  1. r.set("n1","faafwgawg")
  2. print(r.get('n1'))  #b'faafwgawg'
  3. r.setrange("n1",,"fgagwaaw")
  4. print(r.get('n1'))  #b'faafgagwaaw'

位操作setbit,   getbit,    bitcount,    bitop

  1. r.set('s1','')
  2.  
  3. #setbit(name, offset, value)
  4. print(ord(r.get('s1')),bin(ord(r.get('s1')))) #
  5. print(r.getbit('s1',)) #-7索引 获取索引为2的值(第三位)其中2,,7为1,其他位为0
  6. r.setbit('s1',,) #将索引为1的(第二位)设为1
  7. print(ord(r.get('s1')),bin(ord(r.get('s1')))) #
  8. print(r.get('s1'))
  9.  
  10. #bitcount(key, start=None, end=None)
  11. print(r.bitcount('s1',,))#41
  12. print(r.bitcount('s1',,))#4所以这个start end还是可能有点坑,尽量不要使用
  13.  
  14. r.set('s2','')#int类型存入也会转义为string类型49
  15. print(r.get('s2'),bin(ord(r.get('s2'))))#获取的类型是bytes需要进行转换操作
  16.  
  17. #bitop(operation, dest, *keys) operation有与,或,非,异或 *key代表可以操作多个键值
  18. r.bitop('and','s3','s1','s2') #s1:q s2:''
  19. print(r.get('s3'),bin(ord(r.get('s3'))))#s3:''

strlen(name),返回值得字节长度,对于汉字默认3位

incr(self, name, amount=1),   incrbyfloat(self, name, amount=1.0)

decr(self, name, amount=1)其中值必须是数字

append(name,val)向字符后面添加,setrange可以设置范围

  1. r.set('name','你好')
  2. print(r.strlen('name')) # utf- 汉字3字节 英文1字节
  3. r.set('name','你好a')
  4. print(r.strlen('name')) #
  5.  
  6. r.set('num',)
  7. print(r.get('num'))
  8. r.incr('num') # 默认加一,可以自己设置步长
  9. print(r.get('num'))
  10. r.incr('num',) # 默认加一,可以自己设置步长
  11. print(r.get('num'))
  12. r.decr('num',)
  13. print(r.get('num')) #
  14. r.incrbyfloat('num','2.3')
  15. print(r.get('num')) #'96.299999999999997' float操作也出现坑,少入
  16.  
  17. #append(key, value)
  18. r.append('num','fas')
  19. print(r.get('num')) #b'96.299999999999997fas'

其他操作:

删除单个键值:

delete(name)

  1. r.delete('num')

判断每个键是否存在

exists(name)

  1. r.exists('num')

单个键值的过期时间设置:

expire(name ,time)

  1. r.expire('num',)#10秒过期

rename(src, dst)  重命名某个键

move(name, db))   将name的值移到db下

randomkey()     随机获取一个键

type(name)    判断name值类型

scan(cursor=0, match=None, count=None)
scan_iter(match=None, count=None)

迭代获取值

Hash ---->   h开头函数,  主要用于字典

  1. r.hset('d2','key1','val1')
  2. print(r.hget('d2','key1'))

List    ---->   l开头函数,   主要用于列表

  1. r.lpush('ls1',,,)
  2. r.lpush('ls1',)
  3. print(r.lpop('ls1'),r.lpop('ls1'),r.lpop('ls1')) #弹出一个9,, 默认右到左
  4.  
  5. #r.lset(name, index, value) 对索引处重新赋值
  6. r.lset('ls1',,)
  7. print(r.lpop('ls1'))
  8.  
  9. #lindex(name, index)获取索引处值,不必弹出

列表循环获取值:

  1. r.lpush('ls2',,,)
  2. print( r.llen('ls2'))
  3.  
  4. #方法一,range(列表长度)
  5. for i in range(r.llen('ls2')):
  6. print(r.lindex('ls2',i))
  7.  
  8. #方法二,生成器
  9. def list_iter(name):
  10. """
  11. 自定义redis列表增量迭代
  12. :param name: redis中的name,即:迭代name对应的列表
  13. :return: yield 返回 列表元素
  14. """
  15. list_count = r.llen(name)
  16. for index in range(list_count):
  17. yield r.lindex(name, index)
  18.  
  19. for item in list_iter('ls2'):
  20. print(item) 

Set  ---->   s开头函数,    主要用于集合(Set集合就是不允许重复的列表)

  1. sadd(name,values)添加值
  1. scard(name)获取值

其他更多操作Hash,Set,List可以查看:

http://www.cnblogs.com/wupeiqi/articles/5132791.html

https://www.cnblogs.com/melonjiang/p/5342505.html

python---redis的python使用的更多相关文章

  1. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

    首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...

  2. Redis的Python客户端redis-py的初步使用

    1. Redis的安装 sudo pip install redis sudo pip install hiredis Parser可以控制如何解析redis响应的内容.redis-py包含两个Par ...

  3. python+redis测试环境搭建

    针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...

  4. python redis模块的常见的几个类 Redis 、StricRedis和ConnectionPool

    日常写代码过程中,经常需要连接redis进行操作.下面我就介绍下python操作redis模块redis中的几个常见类,包括redis连接池. 一.StrictRedis 类 请看代码:. #!/us ...

  5. Python Redis 的安装

    安装 可以去pypi上找到redis的Python模块: http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit= ...

  6. redis与python交互

    import redis #连接 r=redis.StrictRedis(host="localhost",port=6379,password="sunck" ...

  7. LinuxMint上安装redis和python遇到的一些问题

    今天在安装Redis和Python上遇到了些问题,解决后记录下来. 环境:LinuxMint 18.3 安装redis sudo wget http://download.redis.io/relea ...

  8. Redis在python中的使用

    一 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  9. Python redis 简单介绍

    Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...

  10. Redis的Python客户端redis-py说明文档(转)

    add by zhj: 对Publish / Subscribe,LUA Scripting,Sentinel support,Scan Iterators等部分没有翻译,需要的用户参见英文原文吧.另 ...

随机推荐

  1. Practice5.1 测试与封装5.1

    结对同伴: 姓名 学号 博客地址 叶子鹏 201306114420 http://www.cnblogs.com/kazehanaai/ 王佳宁 201306114434 http://www.cnb ...

  2. [2017BUAA软工]第零次作业

    第一部分:结缘计算机     你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 我当初选择计算机,是因为:1.北航的前辈对北航计算机专业评价非常高:2.我也喜欢通过编程来代替我完成 ...

  3. FICO基础知识(二)

    FI中的maser data: COA (Chart Of Account)  科目表 Account 科目 Vendor master dada  供应商主数据 Customer master da ...

  4. 二叉排序树类的: C++ 实现

    #include<iostream> using namespace std; template<class T> struct TreeNode { T element; T ...

  5. Java微信二次开发(九)

    多媒体文件上传与下载 第一步:找到包com.wtz.vo,新建类WeixinMedia.java package com.wtz.vo; /** * @author wangtianze QQ:864 ...

  6. linux中内存使用原理

    首先介绍一下linux中内存是如何使用的. 当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存 来使用,也 ...

  7. hashCode和equal

    转自:https://www.cnblogs.com/dolphin0520/p/3681042.html hashCode方法在Object类中: public native int hashCod ...

  8. BZOJ1791[Ioi2008]Island 岛屿 ——基环森林直径和+单调队列优化DP+树形DP

    题目描述 你将要游览一个有N个岛屿的公园.从每一个岛i出发,只建造一座桥.桥的长度以Li表示.公园内总共有N座桥.尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走.同时,每一对这样的岛屿,都有一 ...

  9. BZOJ2159 Crash的文明世界(树形dp+斯特林数)

    根据组合意义,有nk=ΣC(n,i)*i!*S(k,i) (i=0~k),即将k个有标号球放进n个有标号盒子的方案数=在n个盒子中选i个将k个有标号球放入并且每个盒子至少有一个球. 回到本题,可以令f ...

  10. 我的G++编译选项

    -Wall -Wextra -g3 -DLOCAL -Wshadow -Wpointer-arith -Wcast-qual -Waggregate-return -Winline -Wunreach ...