Python操作数据库之Redis

2019-08-13  本文已影响0人  鹊南飞_

1. 安装redis

pip install redis
安装redis

2. 连接redis

Redis提供了两个类Redis和StrictRedis来实现Redis的命令操作。官方推荐使用StrictRedis

  1. 使用StrictRedis连接
from redis import StrictRedis

redis = StrictRedis(host='localhost', port='6379')
redis.set('name', 'caixukun')
print(redis.get('name'))

输出结果

b'caixukun'
  1. 使用ConnetionPool连接
from redis import ConnectionPool, StrictRedis

pool = ConnectionPool(host='127.0.0.1', port='6379')
redis = StrictRedis(connection_pool=pool)
print(redis.get('name'))

输出结果

b'caixukun'

StrictRedis内其实就是用host和port等参数构造了一个ConnectionPool,所以直接将ConnectionPool当作参数传给StrictRedis也一样

3. 键常用操作

判断一个键是否存在

print(redis.exists('name'))

删除一个键

print(redis.delete('name'))

判断键类型

print(redis.type('name'))

重命名键,如将name重命名为nickname

print(redis.rename('name', 'nickname'))

设置键的过期时间,单位为秒

print(redis.expire('nickname', 5))

获取键的过期时间,单位为秒,-1表示永久不过期

print(redis.ttl('nickname'))

输出结果

# 1 表示存在
1
# 1 表示删除成功
1
# 类型为字符串
b'string'
# 重命名成功
True
# 设置过期时间成功
True
# 获取过期时间为5秒
5

4. 字符串操作

set(name,value),赋值

print(redis.set('name', 'caixukun'))

get(name),取值

print(redis.get('name'))

append(name,value),追加值

print(redis.append('name', 'basketball'))

substr(name,start,end=-1),返回子串

print(redis.substr('name', 1, 10))

getrange(name,start,end),返回子串

print(redis.getrange('name', 1, 10))

substr(name,start,end=-1),返回子串,-1表示截取到末尾

print(redis.substr('name', 0, -1))

输出结果

# 赋值成功
True
# 取值
b'caixukun'
# 追加成功
18
# 返回子串
b'aixukunbas'
b'aixukunbas'
b'caixukunbasketball'

5. 列表操作

rpush(name,*value) 列表末尾追加

print(redis.rpush('caixukun', 'sing', 'dance', 'rap'))

lpush(name,*value) 列表头部追加

print(redis.lpush('caixukun', 'basketball'))

llen(name) 列表长度

print(redis.llen('caixukun'))

lrange(name,start,end) 返回元素

print(redis.lrange('caixukun', 1, 3))

lindex(name,index) 返回index位置的元素

print(redis.lindex('caixukun', 1))

删除首元素

print(redis.lpop('caixukun'))

删除尾元素

print(redis.rpop('caixukun'))

输出结果

3
4
4
[b'sing', b'dance', b'rap']
b'sing'
b'basketball'
b'rap'

6. 哈希操作

hset(name,key,value) 添加映射

print(redis.hset('caixukun', 'hobby1', 'sing'))

hsetnx(name,key,value) 映射名不存在则添加

print(redis.hsetnx('caixukun', 'hobby2', 'dance'))

hget(name,key) 获取对应的值

print(redis.hget('caixukun', 'hobby1'))

hmget(name,*keys) 各个键对应的值

print(redis.hmget('caixukun', ['hobby1', 'hobby2']))

hdel(name,*keys) 删除对应的映射

print(redis.hdel('caixukun', 'hobby1'))

hlen(name) 获取映射个数

print(redis.hlen('caixukun'))

hvals(name) 所有映射值

print(redis.hvals('caixukun'))

输出结果

1
1
b'sing'
[b'sing', b'dance']
1
1
[b'dance']

7. 集合操作

sadd(name,*value) 向键为name的集合添加元素

print(redis.sadd('caixukun', 'sing', 'dance', 'rap', 'basketball'))

spop(name) 随机删除一个元素

print(redis.spop('caixukun'))

scard(name) 返回集合个数

print(redis.scard('caixukun'))

smembers(name) 返回所有元素

print(redis.smembers('caixukun'))

输出结果

4
b'dance'
3
{b'rap', b'basketball', b'sing'}

8. 有序集合操作

上一篇 下一篇

猜你喜欢

热点阅读