#1 连接redis

# 连接redis

    -- import redis

    -- 使用端口连接redis
conn = redis.Redis(host="127.0.0.1", port=) -- 使用套接字连接
r = redis.Redis(unix_socket_path='/tmp/redis.sock') -- 使用连接池连接到redis
>>> pool = redis.ConnectionPool(host='192.168.56.100', port=)
>>> conn = redis.Redis(connection_pool=pool) -- 写入一条字符串数据
conn.set("ranking:category", "hello")

#2 string api

# string api
set(name, value, ex=None, px=None, nx=False, xx=False)
-- ex expire过期时间,秒
-- px 过期时间毫秒
-- nx 如果设置为True,则只有name不存在时,当前set操作才执行 conn.set('k1', 'v1', ex=, nx=True) setex(name, value, time)
-- 设置过期时间,秒 psetex(name, time_ms, value)
-- 设置过期时间毫秒 mset(*args, **kwargs)
-- 同时设置多个key/value
-- conn.mset({'k1':'v1', 'k1':'v1'}) get(name)
-- 获取单个值
-- conn.get('k1') mget(keys, *args)
-- 获取多个值
mget('k1','k2')
-- mget(['k1','k2']) getrange(key, start, end)
-- 切片获取
-- conn.getrange('key', , ) incr(name, amount=)
-- 对name的value进行自增;name不存在则创建,否则自增 incrbyfloat(name, amount=1.0)
-- 浮点数的自增 decr(name, amount=)
-- 自减 append(key,value)
-- 往字符串后面拼接
>>> conn.set('blog','https://blog.ansheng.me')
True
>>> conn.append('blog','/') >>> conn.get('blog')
b'https://blog.ansheng.me/'

#3 hash api

# hash api

    hset(name, key, value)

        -- 设置name的键值对,有则修改,没有则创建
-- conn.hset('dic','k1','v1')
hmset(name, mapping)
-- 设置name的多个键值对
-- conn.hmset('student', {'name':'lzp', 'age':}) hget(name,key)
-- 获取name中某个key的值
-- conn.hget('dic','k2') hmget(name,keys,*args)
-- 获取name中多个key的值
-- conn.hmget('dic', ['k1','k2'])
-- conn.hmget('dic','k1','k2') hgetall(name)
-- 获取name中所有key的值
-- conn.hgetall('dic') hkeys(name)
-- 获取name中所有的key hvals(name)
-- 获取name中所有的values hincrby(name, key, amount=)
-- 对name中key的value值进行自增
-- conn.hincrby('dic','number',) hscan(name, cursor=, match=None, count=None)
-- 增量式迭代获取,hscan可以实现分片的获取数据,并非一次性将数据全部获取完,从而放置内存被撑爆 参数 描述
name redis的name
cursor 游标(基于游标分批取获取数据)
match 匹配指定key,默认None 表示所有的key
count 每次分片最少获取个数,默认None表示采用Redis的默认分片个数 hscan_iter(name, match=None, count=None) -- 利用yield封装hscan创建生成器,实现分批去redis中获取数据 match 匹配指定key,默认None 表示所有的key
count 每次分片最少获取个数,默认None表示采用Redis的默认分片个数
-- for item in r.hscan_iter('xx'):
print(item) expire(name,time)
-- 设置过期时间

#4 list api

[ecmagent][redis学习][1初识redis] python操作redis的更多相关文章

  1. 数据库之redis篇(3)—— Python操作redis

    虽然前面两篇已经说了redis的一些配置安装什么的,篇幅有点长,可能看完了也不知道怎么操作,这里再浓缩一下: 什么是redis redis完全开源免费的,遵守BSD协议,是一个高性能的非关系型key- ...

  2. redis学习心得之三-【java操作redis】

    今天主要是讲讲java对redis的操作,来段代码掩饰下基本操作即可明白. java调用你需要下载jedis.jar包 下载网址:https://github.com/xetorthio/jedis/ ...

  3. Linux 下的python操作redis

    python操作redis   Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).se ...

  4. Python操作redis学习系列之(集合)set,redis set详解 (六)

    # -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...

  5. redis学习 (key)键,Python操作redis 键 (二)

    # -*- coding: utf-8 -*- import redis #这个redis 连接不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. delete ...

  6. Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库

    操作数据库 一.数据库 数据库类型主要有关系型数据库和菲关系型数据库. 数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储.因此数据查询 ...

  7. Python操作redis系列之 列表(list) (四)

    # -*- coding: utf- -*- import redis r =redis.Redis(host=,password="ZBHRwlb1608") 1. Lpush ...

  8. Python操作redis系列之 列表(list) (五)(转)

    # -*- coding: utf-8 -*- import redis r =redis.Redis(host=") 1. Lpush 命令将一个或多个值插入到列表头部. 如果 key 不 ...

  9. Python操作redis系列之 列表(list) (五)

    # -*- coding: utf- -*- import redis r =redis.Redis(host=,password=") 1. Lpush 命令将一个或多个值插入到列表头部. ...

  10. [python]操作redis sentinel以及cluster

    先了解清楚sentinel和cluster的差别,再学习使用python操作redis的API,感觉会更加清晰明白. 1.redis sentinel和cluster的区别 sentinel遵循主从结 ...

随机推荐

  1. PHP精度问题

    PHP 为任意精度数学计算提供了二进制计算器(Binary Calculator),它支持任意大小和精度的数字,以字符串形式描述 bcadd — 加法bccomp — 比较bcdiv — 相除bcmo ...

  2. 10-UIScrollView

    UIScrollView 掌握 UIScrollView的常见属性 UIScrollView的常用代理方法 UIScrollView的缩放 UIScrollView和UIPageControl的分页 ...

  3. NPM 学习笔记整理

    NPM 学习笔记整理 阅读 550,2017年06月04日 发布,来源:blog.ihoey.com 什么是 NPM npm 之于 Node ,就像 pip 之于 Python , gem 之于 Ru ...

  4. (转)数据库老兵:NewSQL才是未来

    编者按:在数据库技术领域,Michael Stonebraker几乎是无人不知无人不晓的人物.现年70岁的Stonebraker不仅是Ingres和PostgreSQL的创始人,同时在Informix ...

  5. Allowed memory size of 134217728 bytes exhausted (tried to allocate 2 bytes)

    出现  Allowed memory size of 134217728 bytes exhausted (tried to allocate 2 bytes)时在php.ini文件中配置 memor ...

  6. IAR 编译时找不到头文件的解决方法

    Fatal Error[Pe1696]: cannot open source file "x.h" 那是因为头文件路径没有找对 到报错的.c源文件 选中右键 选择options ...

  7. python面向对象三大特性

    面向对象的三大特性: 封装.继承和多态 一.封装 封装,顾名思义就是将内容封装到某个地方,以后可以直接调用被封装到某处的内容. - 将内容封装到某处 - 从某处调用被封装的内容 第一步,将内容封装到某 ...

  8. android 事件传递机制

    有三个方法: dispatchTouchEvent onInterceptTouchEvent onTouchEvent 首先:A的dispatchTouchEvent-A的onInterceptTo ...

  9. android studio 首字母提示 设置 大小写敏感

    在使用Android studo 编写程序时, 刚开始,关键字提示 首字母 设置了 大小写敏感,小写字母只能提示小写字母开头的,大写字母只能提示大写字母开始的,比较麻烦,在网上搜了下,解决办法如下: ...

  10. Lambda与LINQ

    Lambda与LINQ写法对比: 上为Lambda 下为LINQ 显示指定列 Students.select(u=>(new {Name=u.Sname,Address=u.Saddress}) ...