一、首先,要下载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. js中的构造函数

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

  2. STL中的map、unordered_map、hash_map

    转自https://blog.csdn.net/liumou111/article/details/49252645 在之前使用STL时,经常混淆的几个数据结构,特别是做Leetcode的题目时,对于 ...

  3. mysql基础---->mybatis的批量插入(一)

    这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...

  4. python3 日志检索异常抛出异常 raise KeyError(key),KeyError: 'formatters'

    原因分析,python3启动时,检索的不是项目包下的目录文件,所以日志文件必须指明路径.我原来的日志方式是: import logging.config log_path = "mlpcap ...

  5. 遍历DOM打平

    html 模板 <div class="box"> <p>1</p> <p>2</p> <div> < ...

  6. 7:CSS Sprites的原理(图片整合技术)

    7:CSS Sprites的原理(图片整合技术) 一.将导航背景图片,按钮背景图片等有规则的合并成一张背景图,即将多张图片合为一张整图,然后用background-position”来实现背景图片的定 ...

  7. Spark RDD Transformation 简单用例(三)

    cache和persist 将RDD数据进行存储,persist(newLevel: StorageLevel)设置了存储级别,cache()和persist()是相同的,存储级别为MEMORY_ON ...

  8. HDOJ HDU 1850 Being a Good Boy in Spring Festival

    Description 一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早起 给爸妈用心地 ...

  9. hashMap 和linkedHashMap

    hashMap是个单向链表的数组 linkedHashMap是个双向链表的数组,modal就是linkedHashMap

  10. 简单的Git流程

    一.安装cygwin 略 二. 1.创建一个文件 $echo "中华人民共和国">>abc.txt 2.添加到文件追踪 $git add abc.txt 上一行是提交一 ...