一、首先,要下载redis

pip3 install redis

二、连接redis

import redis
#拿到一个redis的链接
conn=redis.Redis('127.0.0.1',6379)
# print(conn.get('name'))

#redis的字符串操作
#ex过期时间(秒),px过期时间(毫秒)
# conn.set('pwd','123456',ex=5)
#nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果
# conn.set('name','egon',nx=True)
#xx,如果设置为True,则当set操作才执行,值存在才能修改,值不存在,不会设置新值
# conn.set('paa','123456',xx=True)
#设置值,只有name不存在时,执行设置操作(添加),如果存在,不会修改
# conn.setnx('name','xuxu')
#设置值,setex(name,time,value)
# conn.setex('token',5,'hnkjashd')
#设置值,psetex(name,time_ms,value)
#time_ms过期时间(数字毫秒)或timedelta对象

#mset(*args,**kwargs)  批量设置值
# conn.mset({'k1':'v1','k2':'v2'})

#mget(keys)批量获取值
# ret=conn.mget({'k1','k2'})
# print(ret)

#getset(name,value)
#设置新值并获取原来的值

#getrange(key,start,end)
#获取子序列(根据字节获取,非字符)
#参数:
#   name
#   start起始位置(字节)
#   end,结束位置(字节)

#setrange(name,offset,value)
#修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
#参数:
#   offset,字符串的索引,字节
#   value,要设置的值

#strlen(name)
#返回name对应值的字节长度(一个汉字三个字节)

#incr(self,name,amount)
#自增name对应的值,当name不存在时,则创建name=amount,否则,则自增
#参数:
#   name
#   amount自增数(必须是整数)
# print(conn.incr('pw',2))

#decr(self,name,amount=1)
#自减 name对应的值,当name不存在时,则创建name=amount,否则,则自减
#参数:
#   name
#   amount,自减数

#append(key,value)
#在redis name对应的值后面追加内容
#参数:
#   key,redis的name
#   value,要追加的字符串

三、连接池与列表的一些操作

# import redis
#拿到一个redis的连接池
# pool=redis.ConnectionPool(host='127.0.0.1',port=6379,max_connections=5)
#从池子中拿一个连接
# conn=redis.Redis(connection_pool=pool)
#这样虽然是从连接池中取连接,但是每次都会建立新的连接池,如果想要同一个连接池,则可以把连接池做成单例

import redis
conn=redis.Redis('127.0.0.1',6379)
# conn.hset('m1','key2','value2')
#redis支持5大数据类型,只支持第一层,也就是说字典的value值,必须是字符串
#如果value值想存字典格式,必须用json转换一下,转成字符串
# conn.hmset('m2',{'key1':'value1','key2':'value2'})

#
# print(conn.hmget('m2','key1','key2'))
# print(conn.hmget('m2',['key1','key2']))

#取出所有的
# print(conn.hgetall('m2'))

# print(conn.hlen('m1'))
# print(conn.hkeys('m2'))
# print(conn.hvals('m2'))
#判断key1是否在m2中
# print(conn.hexists('m2','key1'))
#删除键值对,按key来查询的
# conn.hdel('m2','key1','key2')
# conn.hdel('m2',*['key1','key2'])
#自增,应用场景:统计文章阅读数.key是文章id,value是文章阅读数,有一个阅读者,数字加一,固定一个时间,将数据同步到数据库
# conn.hincrby('m2','key4')

# for i in range(1000):
#     conn.hset('m2','key%s'%i,'value%s'%i)
#指定每次取10条,直到取完
# ret=conn.hscan_iter('m2',count=10)
#当数据量很大的时候,不要用这种方式
#ret=conn.hgetall('m2')
# for i in ret:
#     print(i)

#lpush(name,values)
#在name对应的list中添加元素,每个新的元素都添加到列表的最左边
#如r.lpush('oo',11,22,33),保存顺序为33,22,11
# conn.lpush('l1','11','22','33')
#对应的有rpush
# conn.rpush('l1','x','y','z')
#查看list长度
# print(conn.llen('l1'))

# conn.linsert('l1','before','11','xuxu')
# conn.linsert('l1','after','11','xuxu')

#索引从0开始,第2个值设置成'4444'
# conn.lset('l1',2,'4444')

#*****列表操作,没有getall这个东西,可以通过切片来获取全部
#这个是前闭后闭区间
# print(conn.lrange('l1',0,conn.llen('l1')))
#blpop重点
#删掉一个值,同时可以显示这个值。如果列表中没有值,会一直hang住,实现简单的分布式。
# print(conn.blpop('l1',timeout=3))

#自定义增量迭代
def scan_list(name,count=2):
    index=0
    while True:
        data_list=conn.lrange(name,index,count+index-1)
        if not data_list:
            return
        index+=count
        for item in data_list:
            yield item

四、redis支持的事务

#管道,实现事务操作
#redis对事务的支持其实不是特别好
import redis
pool=redis.ConnectionPool(host='127.0.0.1',port=6379)
coon=redis.Redis(connection_pool=pool)
#拿到一个管道对象
pipe=conn.pipeline(transaction=True)
#开启一次执行多条命令
pipe.multi()
pipe.set('name','lqz')
pipe.set('role','teacher')
pipe.execute()

五、在django中使用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连接配置

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

  6. redis基础之python连接redis(五)

    前言 前面介绍了在数据库命令行直接操作redis,现在学习使用python的redis包来操作redis,本人安装的是redis==2.10.6: 系列文章 redis安装和配置 redis命令行操作 ...

  7. python连接redis sentinel集群

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

  8. Python连接redis时要注意的点

    一.一般连接redis情况 from redis import Redis # 实例化redis对象 rdb = Redis(host='localhost', port=6379, db=0) rd ...

  9. Python 连接Redis两中方式

    一.通过django里设置settings文件连接redis #1.settings添加 CACHES = { "default": { "BACKEND": ...

随机推荐

  1. UILabel(富文本)

    本文转载至 http://www.jianshu.com/p/5d24d22f99c3 富文本 NSString *str = @"人生若只如初见,何事秋风悲画扇.\n等闲变却故人心,却道故 ...

  2. 两种简单实现菜单高亮显示的JS类(转载)

    两种简单实现菜单高亮显示的JS类   近期在写一个博客管理后台的前端,涉及在同一页面两种高亮显示当前菜单的需求.记得当年写静态页时,为了实现高亮都是在每个页面加不同的样式,呵.高亮显示我觉得对于web ...

  3. Pro ASP.NET MVC –第二章 第一个MVC程序

    学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...

  4. .net core 支持apk下载

    在 app.UseStaticFiles(); 后面加上 app.UseStaticFiles(new StaticFileOptions { //FileProvider = new Physica ...

  5. chfn是用来改变你的finger讯息

    finger 总览 finger[-lmsp][user...][user host...][[]] 参数: -s Finger显示用户的登录名,真名,终端名以及写状态(如果写被禁止,在终端名后显示一 ...

  6. 一个生产可用的mysql参数文件my.cnf

    [client]#客户端选项设置#设置客户端和连接字符集default_character_set = utf8port = 3306socket = /opt/mysql-5.6.24/tmp/my ...

  7. HiveQL之Sort by、Distribute by、Cluster by、Order By详解

    在这里解释一下select语法中的order by.sort by.distribute by.cluster by.order by语法. 一.order by语法 在hiveQL中Order by ...

  8. OC变量限定符和属性限定符

    ARC当中变量的四种生命周期限定符 __strong __weak __unsafe_unretained __autoreleaseing __strong 是默认的限定符,无需显示引入,只要有强引 ...

  9. RabbitMQ 内存控制 硬盘控制

    RabbitMQ服务器在启动时以及abbitmqctl set_vm_memory_high_watermark fraction 执行时,会检查计算机的RAM总大小. 默认情况下下, 当 Rabbi ...

  10. jvisualvm All-in-One Java Troubleshooting Tool

    java 监控.故障.性能可视化分析 VisualVM: Download https://visualvm.github.io/download.html All-in-One Java Troub ...