1、先看下redis的连接

import redis

# 连接服务端
r = redis.Redis(host="127.0.0.1",port=6379) #获取所有的key值
print(r.keys()) #获取某个键的value
print(r.get("name")) # 设置一个键值对
r.set("name","ddd",ex=3)

 

2、在看下redis的连接池,创建一个连接池,并且连接该连接池

connect_pool = redis.ConnectionPool(host="1.1.1.1",port=6379)

r = redis.Redis(connection_pool=connect_pool)

r.set("age",23,ex=2)
print(r.get("age"))

3、下面是redis的重点,操作包括dict,list,set,有序集合,hash的操作

# 3、操作
# 过期时间
# ex 单位是秒钟
# px 单位是毫秒
# nx 如果设置为True,则只有name不存在时候,当前set操作才执行
# xx 如果设置为True,则治愈后name存在的时候,当前set操作才执行 r.setnx()
#设置值,只有name不存在的时,执行设置操作 #批量get值
r.mget() #批量设置值
r.mset() #设置新的值然后获取老的值
r.getset() # #获取value的子序列,根据字节提取,非字符
# 参数:
# name Redis的name的值
# start 起始位置字节
# end 结束位置字节
r.getrange(key="name",start=1,end=2) #修改字符串的内容,从指定的字符串索引开始向后替换,如果新的值过长,则向后添加
# 参数:
# offset 字符串的索引,字节,一个汉字3个字节
# value 要设置的值
# r.setrange(name,offset,value)
# 比如name=12345
# r.setrange(name,2,"abcde")
# 最后name的值为1abcde #对name对应的二进制表示的位进行操作
# 参数
# name redis的name
# offect 位的索引(将值变换成二进制后进行索引)
# value 值只能是1或者0
# # r.setbit(name,7,0)
#把name的value值用SCSI码表示,然后把第七位替换为0或者1
# r.setbit() # 查看第6位的SCSI码数,从1开始数
# r.getbit("name",6) #看一个例子,比如要统计uv,就是每天有多少用户访问我们的网站
# r.setbit("uv_count",id,1) # r.setbit("uv_count",1,1)
# r.setbit("uv_count",2,1)
# r.setbit("uv_count",4,1)
# print(r.bitcount("uv_count")) #先把uv_count的值设置为0,然后每个用户都有自己的id,那么每个用户过来,id为1,我们就把第1位设置为1,id为100,我们就把
#第100位设置为1,bitcount的方法就是统计value中的1的数量 # 返回value的长度,一个汉字是3个字节
print(r.strlen("name")) #如果name存在,则自加1,如果name不存在,则创建name并赋值为1,统计pv的时候有用
# r.incr("name",1) #和incr的效果一样,不过这个是自减
# r.decr() #对name的value的值后面追加内容,追加的内容为aaaaa,就是拼接字符串
r.append("name","aaaa") #Hash操作,存dict # name hash
#
# name1 ----------> k1-->v1
# k2-->v2
# k3-->v3
#
#
#
#
# name2 ----------> k1-->v1
# k2-->v2
# k3-->v3 # 单独设置hash
r.hset("stu_info","stu1","a")
r.hset("stu_info","stu2","b")
r.hset("stu_info","stu3","c") #批量设置hash
r.hmget("stu_info",{"stu4":"d","stu5":"e","stu6":"f"}) # 获取指定的hash值
r.hget("stu_info","stu3") #获取全部的hash值
r.hgetall("stu_info") #获取name对应的hash中的键值对的个数
r.hlen() #获取name对应的hash中所有的key的值
r.hkeys() #获取name对应的hash中的所有的value的值
r.hvals() #检测name对应的hash是否存储在当前传入的key
# r.hexists(name,value) #将name对应的hash中指定的key键值对删除
# r.hdel() #给name对应的hash中的key的value的值自加1
r.hincrby() #list操作,存list #添加元素,从左边push,从右边pus r.lpush()
r.rpush() #获取list的值,需要加一个范围
r.lrange("") #获取长度
r.llen() # 插入值
# r.linsert(name,where,refvalue,value) # where = before|after
# refvalue list中某个元素的值,在这个值后面获取前面插入一个值,在找到的第一个元素前面或者后面
# value 插入的值 # r.ltrim(name,start,end)
#在name对应的列表中移除没有在start-end索引之间的值 #set操作,集合操作,set集合就是不允许重复的列表 #最终的list中只有一个1和一个3,为name对应的集合添加元素
r.sadd("set_list","1","3","1") #查看某个name的集合的元素,但是会带一个优先级
r.sscan() #获取name对应的集合的元素的个数
r.scard() #比较2个都在redis中的set的差集,求在set1对应的集合,且不在set2对应的集合的值的集合
r.sdiff("set1","set2") #把a和b对应的集合存到c对应的集合中
r.sdiffstore("a","b","c") #求name为a对应的集合和name为b对应的集合的交集
r.sinter("a","b") #判断value是否在name对应的集合中 # r.sismember(name,value) #获取某个name对应的集合的元素
r.smembers() #将name为a对应的集合中的元素"c"移到name为b对应的集合中,a中就没有这个原始怒
r.smove("a","b","c") #从集合的右侧(尾部)移除第一个成员,并将其返回
r.spop() #删除随机的h获取number个元素
r.srandmember("name",20) ##删除某个值
r.srem() #获取多个name对应的集合的并集
r.sunion() #获取b、c、d。。。。。的集合的并集,并将结果保存到a对应的集合中
# r.sunionstore("a","b","d","d".....) #有序集合的操作
#有序集合,在集合的基础上,为每个元素排序,元素的排序需要根据另外一个值来决定,
#元素有2个值,即值和分数,分数专门用来做排序 #值为a,分数为10,值为b,分数为4,分数小的靠前
r.zadd("name","a",10,"b",4) #查看有序集合的元素的值
r.zscan() #获取有序集合的长度
r.zcard() #获取有序集合中分数在[min,max]之间的个数
r.zcount() #可以自增有序集合中某个元素的分数
r.zincrby() #获取name对应的集合中分数在34和59的元素
r.zrangebyscore("name",34,59) #删除某个k
r.delete() #判断某个k是否存在
r.exists() #给某个k设置超时时间
r.expire() #g重命名某个k的名字
r.rename() #将name中的某个值移到db中
# r.move(name,db) #随机获取个name的值,但是不删除
r.randomkey() #获取name对应的值类型
r.type() #redis默认有16个库
# select 2,切换到库2中

  

redis的连接方法|连接池|操作的更多相关文章

  1. python操作Redis安装、支持存储类型、普通连接、连接池

    一.python操作redis安装和支持存储类型 安装redis模块 pip3 install redis 二.Python操作Redis之普通连接 redis-py提供两个类Redis和Strict ...

  2. redis连接池操作

    /** * @类描述 redis 工具 * @功能名 POJO * @author zxf * @date 2014年11月25日 */public final class RedisUtil { p ...

  3. Redis 简单使用 and 连接池(python)

    Redis 简介 NoSQL(not only sql):非关系型数据库 支持 key-value,  list,  set,  zset,  hash 等数据结构的存储:支持主从数据备份,集群:支持 ...

  4. powersheel远程连接方法操作

    powersheel远程连接密码加密连接高级玩法 ConvertTo-SecureString 和 ConvertFrom-SecureString 命令都支持选项 -Key.在处理密码时通过使用 K ...

  5. Java与redis交互、Jedis连接池JedisPool

    Java与redis交互比较常用的是Jedis. 先导入jar包: commons-pool2-2.3.jar jedis-2.7.0.jar 基本使用: public class RedisTest ...

  6. Oracle数据库操作类及连接方法

    创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...

  7. [笔记]使用Go语言Redigo包在Docker容器内连接Redis容器的方法

    Docker容器之间的连接可以带来不少方便,下面记录下如何在自己容器内通过环境变量连接与之连接的Redis容器的方法. 先起一个Redis的Docker容器,命名为 redis,再起一个自己的Dock ...

  8. spark1.4加载mysql数据 创建Dataframe及join操作连接方法问题

    首先我们使用新的API方法连接mysql加载数据 创建DF import org.apache.spark.sql.DataFrame import org.apache.spark.{SparkCo ...

  9. java架构之路-(Redis专题)SpringBoot连接Redis超简单

    上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis 主从架构 如何配置我上次已 ...

随机推荐

  1. 解决Eclipse中文乱码的问题

    注意:显示中文所有的编码方式主要是GBK和UTF-8,UTF-8是国际通用的中文编码标准,推荐使用. 一. 设置工作空间的编码 编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置 ...

  2. Android EditText 中hint文字大小以及与输入文字颜色保存一致

    SpannableString 这个就是用来处理android 文本信息 可编辑 可点击 感兴趣的自己去看! /* * Copyright (C) 2006 The Android Open Sour ...

  3. Winform开发常用控件之DataGridView的简单数据绑定——代码绑定DataSet、DataTable、IList、SqlDataReader

    前文介绍了Winform为DataGridView提供的数据自动绑定功能,下面介绍一下采用代码的数据绑定 1.用DataSet和DataTable为DataGridView提供数据源 先上代码 pri ...

  4. PHP write byte array to file

    /********************************************************************************* * PHP write byte ...

  5. .NET移动开发环境搭建

    开发工具:Xamarin Studio 社区版 下载地址 http://www.monodevelop.com/download/ 操作系统要求:Windows7及以上..NET Framework4 ...

  6. test20181018 B君的第三题

    题意 B 君的第三题(shenyang) 题目描述 客似云来,万里无云 B 君得到了一个数组\(\{a_1,a_2,\dots,a_n\}\). B 君想通过修改让数组中个每对数都互质. 每次使一个数 ...

  7. 浅谈 Gevent 与 Tornado(转)

    原文:http://www.pywave.com/2012/08/17/about-gevent-and-tornado/ 还是前几月的时候,几乎在同一时间,自己接触到了 Gevent 和 Torna ...

  8. POJ1236学校网络——tarjan

    题目:http://poj.org/problem?id=1236 Tarjan+缩点.温习一下Tarjan的写法. 1.在缩点后的TAG中,有几个联通块等价于有几个入度为0的点! 2.把它们都联通相 ...

  9. WCF揭秘学习笔记(3):使用DataContractSerializer

    使用DataContractSerializer 终结点(包括地址.绑定.契约)可通过代码以编程方式添加到服务中.如: using(ServiceHost host =new ServiceHost( ...

  10. "废物利用"也抄袭——“完全”DIY"绘图仪"<二、下位机程序设计>

    就不说怎么组装了吧,一把辛酸泪.说程序,因为这有两把辛酸泪……一把给下位机的C代码一把为了VB.NET的图像处理……不过就上上一篇说的,它们可以正确运行了,并且今天克服了Arduino上电过程中步进电 ...