python redis 的基本操作指令

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
redis基本命令和基本用法详解
   1.redis连接
   2.redis连接池
   3.redis基本命令
        3.1 string
        3.2 hash
        3.3 list
        3.4 set
        3.5 有序set
   4.其他常用的操作
   5.example
'''
import redis  #导入官方包

'''
1.redis conncetion
redis-py 提供两个类的连接方式,Redis和StrictRedis用于实现Redis的命令
trictRedis用于实现大部分官方的命令,并使用官方的语法和命令,
Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py
'''
def redis_connect():

     #host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
     r = redis.Redis(host= "192.168.10.130", port = 6379, db = 0)
     #key是"foo" value是"bar" 将键值对存入redis缓存
     r.set('foo', 'Bar')
     #取出键foo对应的值
     print r.get('foo')


'''
2.redis connection pool
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。
'''
def redis_connect_pool():

    #host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
    pool = redis.ConnectionPool(host='192.168.10.130', port=6379, db = 0)
    #建立链接实例
    r = redis.Redis(connection_pool=pool)
    # key是"foo" value是"bar" 将键值对存入redis缓存
    r.set('foo', 'Bar')
    # 取出键foo对应的值
    print r.get('foo')


'''
3.redis基本命令
    3.1 string
        set(name, value, ex=None, px=None, nx=False, xx=False)
        在Redis中设置值,默认,不存在则创建,存在则修改参数:
            ex,过期时间(秒)
            px,过期时间(毫秒)
            nx,如果设置为True,则只有name不存在时,当前set操作才执行
            xx,如果设置为True,则只有name存在时,当前set操作才执行
'''
def redis_string():

    # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
    pool = redis.ConnectionPool(host='192.168.10.130', port=6379, db=0)
    # 建立链接实例
    r = redis.Redis(connection_pool=pool)

    #1.ex,过期时间(秒) 这里过期时间是3秒,3秒后键foo的值就变成None
    r.set('foo','Bar',ex = 3)
    print r.get('foo')

    #2.px,过期时间(豪秒) 这里过期时间是3豪秒,3毫秒后,键foo的值就变成None
    r.set('foo', 'bar',px = 3)
    print r.get('foo')

    #3.nx,如果设置为True,则只有name不存在时,当前set操作才执行 (新建)
    r.set('foo', 'bar',nx = True)

    #4.xx,如果设置为True,则只有name存在时,当前set操作才执行 (修改)
    r.set('foo', 'bar',xx = True)

    #5.setnx(name, value) 设置值,只有name不存在时,执行设置操作(添加)
    r.setnx('foo2', 'bar2')

    #6.setex(naem,value, time) 设置值, 超过过期时间(秒),time后就变为None
    r.setex('foo3', 'bar3', 5)

    #7.psetex(name, time_ms, value) 设置值,超过过期时间(毫秒),值就编程了None
    r.psetex('foo', 5000, "bar")
    print r.get("foo")

    #8.mset(*args, **kwargs) 批量的设置值,参数为字典,或者队列
    r.mset(k1 = 'v1', k2 = 'v2')  #这里k1 和k2 不能带引号 一次设置对个键值对
    print r.mget("k1", "k2")   #一次取出多个键对的值
    print r.mget("k1")

    #9.mget(keys, *args) 批量获取
    r.mget('ylr', 'wupeiqi')
    print r.mget("foo", "foo1", "foo2", "k1", "k2")

    #10.getset(name, value) 设置新值并获取原来的值
    print r.getset("foo1", "bar_NEW") #输出的值为旧值bar

    #11.getrange(key, start, end) 获取子序列
    r.set("foo1", "成都市")
    print r.getrange("foo1", 0, 2)  #切片操作,取前三位字节

    #12.setrange(nemw,offset, value) 修改字符串内容,从指定字符串索引开始向后替换
    r.setrange("foo1", 1, "aaa")
    print r.get("foo1") #值大概为baaanew  原始值为bar_new

    #13.setbit(name, offset, value) 对key应的值的二进制进行位操作
    r.setbit("n1", 7, 1) #将n1对应的值的二进制第7位改为1

 


作 者:小闪电 

出处:http://www.cnblogs.com/yueyanyu/ 

本文版权归作者和博客园共有,欢迎转载、交流,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。如果觉得本文对您有益,欢迎点赞、欢迎探讨。本博客来源于互联网的资源,若侵犯到您的权利,请联系博主予以删除。


 

posted on 2017-03-01 15:38  小闪电  阅读(720)  评论(0编辑  收藏  举报

导航