一、首先,要下载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. Kafka Java API获取非compacted topic总消息数

    目前Kafka并没有提供直接的工具来帮助我们获取某个topic的当前总消息数,需要我们自行写程序来实现.下列代码可以实现这一功能,特此记录一下: /** * 获取某个topic的当前消息数 * Jav ...

  2. [转]Mariadb的root密码忘记后的解决方法

    环境背景:CentOS 7.2     一.编辑/usr/lib/systemd/system/mariadb.service 文件,在Service段中添加 1 2 3 4 5 6 7 8 9 10 ...

  3. [原]openstack-kilo--issue(十二)openstack-keystone和httpd服务同时占用35357和5000

    本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. == Keystone service == openstack-keyston ...

  4. linux zendOptimizer安装

    ZendChina官方:下面介绍一下关于在linux环境下Zend Optimizer 3.3的安装方法.本篇文章是基于RHEL5架构的linux系统. (1)ZendOptimizer 3.3.3版 ...

  5. php foreach

    工作半年了我一直以来至知道这样用,foreach($aa as $k=>$r){} 尔今天师父已教我还可以这样用:  foreach($aa as $r){}

  6. day9 九、函数

    一.函数 1.函数:可以完成特定功能的代码块,函数就是存放代码块的容器 2.定义函数的语法: 函数四部分:(函数执行的本质:执行函数体,得到函数返回值) ①函数名 ②函数体 ③返回值 ④参数 用def ...

  7. js点击按钮保存数据到本地

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 配置llama实现impala on yarn-验证未通过,仅以此文作为参考

    以下内容采自网络,目前验证未通过,仅以此作为参考: 简介:早期的Impala版本中,为了使用Impala,我们通常会在以Client/Server的结构在各个集群节点启动impala-server.i ...

  9. phoenix技术(安装部署和基本使用)讲解

    1.phoenix简介 Apache Phoenix是构建在HBase之上的关系型数据库层,作为内嵌的客户端JDBC驱动用以对HBase中的数据进行低延迟访问.Apache Phoenix会将用户编写 ...

  10. Oracle 分区表 收集统计信息 参数granularity

    GRANULARITY Determines the granularity of statistics to collect. This value is only relevant for par ...