Python-Redis-0x00

2019-02-14  本文已影响0人  An0th3r

1. Redis安装和基本使用

wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar zxf redis-3.0.6.tar.gz
cd redis-3.0.6
make

启动服务端
src/redis-server
启动客户端
src/redis-cli

redis> set foo bar
OK
redis> get foo
"bar"

2. Python操作Redis

sudo pip install redis

API使用

  1. 操作模式
    redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
import redis
 
r = redis.Redis(host='10.211.55.4', port=6379)
r.set('foo', 'Bar')
print(r.get('foo'))
  1. 连接池
    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
#!/usr/bin/env python
import redis
 pool = redis.ConnectionPool(host='127.0.0.1', port=6379)

r = redis.Redis(connection_pool = pool)
r.set('foo', 'bar')
print(r.get('foo'))

  1. 操作
    String操作,redis中的string在内存中按照key-value来存储。

set(name, value, ex=None, px=None, nx=False, xx=False)

参数:
    ex,过期时间(秒)
    px,过期时间(毫秒)
    nx,如果设置为True,则只有name不存在时,当前set操作才执行
    xx,如果设置为True,则只有name存在时,岗前set操作才执行

setnx(name, value)

设置值,只有key不存在时执行set操作

setex(name, value, time)

设置值
参数:
   time,过期时间(数字秒 或 timedelta对象)

psetex(name, time_ms, value)

设置值
参数:
   time_ms,过期时间(数字毫秒 或 timedelta对象)

mset(*arg, **kwargs)

批量设置值
如:
   mset(k1='v1', k2='v2')
   或
   mget({'k1': 'v1', 'k2': 'v2'})

get(name)

获取值

mget(keys, *args)

批量获取
如:
   mget('ylr', 'wupeiqi')
   或
   r.mget(['ylr', 'wupeiqi'])

getset(name, start ,end)

设置新值并获取原来的值

getrange(key, start, end)

获取子序列(根据字节获取,非字符)
参数:
   name,Redis 的 name
   start,起始位置(字节)
   end,结束位置(字节)
如: "周杰伦" ,0-3表示 "周"

setrange(name, offset, value)

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

setbit(name, offset, value)

对name对应值的二进制表示的位进行操作 
参数:
   name,redis的name
   offset,位的索引(将值变换成二进制后再进行索引)
   value,值只能是 1 或 0

getbit(name, offset)

获取name对应的值的二进制表示中的某位的值 (0或1)

bitcount(name, start=None, end=None)

获取name对应的值的二进制表示中 1 的个数
参数:
   key,Redis的name
   start,位起始位置
   end,位结束位置

bitop(operation, dest ,*keys)

获取多个值,并将值做位运算,将最后的结果保存至新的key对应的值
参数:
   operation,AND、OR、NOT、XOR
   dest,新的Redis的key
   *keys,要查找的Redis的key

strlen(name)

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

incr(self, name, amount=1)

自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
参数:
   name,Redis的name
   amount,自增数(必须是整数) 
注:同incrby

incrbyfloat(self, name, amount=1.0)

自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
参数:
   name,Redis的name
   amount,自增数(浮点型)

decr(self, name, amount=1)

自减 name对应的值,当name不存在时,则创建name=amount,否则,则自减。
参数:
   name,Redis的name
   amount,自减数(整数)

append(key, value)

在redis name对应的值后面追加内容
参数:
   key, redis的name
   value, 要追加的字符串
上一篇下一篇

猜你喜欢

热点阅读