您的位置:首页 > 数据库 > Redis

Python 操作redis 常用方法

2018-06-01 19:11 381 查看
Python 操作redis

1.字符串

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import redis

# python 操作str
class TestString(object):
"""
set --设置值
get --获取值
mset --设置多个键值对
mget --获取多个键值对
append --添加字符串
del --删除
incr/decr -- 增加/减少 1
"""

def __init__(self):
self.r = redis.StrictRedis(host='localhost', port=6379, db=0)

def test_set(self):
rest = self.r.set('user2', 'Amy')
print rest
return rest

def test_get(self):
rest = self.r.get('user2')
print rest
return rest

def test_mset(self):
"""
mset --设置多个键值对
:return:
"""
d = {
'user1': 'XH',
'user3': 'Bob',
'user4': 'Bobx'
}
rest = self.r.mset(d)
print rest
return rest

def test_mget(self):
"""
mget --获取多个键值对
:return:
"""
l = ['user1','user2','user3','user4','user6']
rest = self.r.mget(l)
print rest
return rest

def test_del(self):
"""
del 删除
:return:
"""
rest = self.r.delete('user1')
print rest
return rest

def main():
str_obj = TestString()
str_obj.test_set()
str_obj.test_get()
str_obj.test_mset()
str_obj.test_mget()
str_obj.test_del()

if __name__ == '__main__':
main()


2.列表

class TestList(object):
"""
lpush/rpush --从左/右插入数据
lrange -- 获取指定长度的数据
ltrim -- 截取一定长度的数据
lpop/rpop -- 移除最左/右的元素并返回
lpushx/rpushx -- key存在的时候才插入数据,不存在不做任何处理
"""

def __init__(self):
self.r = redis.StrictRedis(host='localhost', port=6379, db=0)

def test_push(self):
"""
lpush/rpush --从左/右插入数据
lrange -- 获取指定长度的数据
:return:
"""
t = ('Amy', 'Jhon')
reset = self.r.lpush('l_eat2', *t)
print reset
reset = self.r.lrange('l_eat2', 0, -1)
print reset

def test_pop(self):
"""
lpop/rpop -- 移除最左/右的元素并返回
:return:
"""
rest = self.r.lpop('l_eat2')
print rest

reset = self.r.lrange('l_eat2', 0, -1)
print reset

def main():
# list
list_obj = TestList()
#list_obj.test_push()
list_obj.test_pop()

if __name__ == '__main__':
main()


3.集合

class TestSet(Base):
"""
sadd/srem --添加/删除元素
sismember --判断是否为set的一个元素
smembers --返回该集合的所有成员
sdiff --返回一个集合与其他集合的差异
sinter --返回几个集合的交集
sunion --返回几个集合的并集
"""
def test_sadd(self):
"""
sadd/srem --添加/删除元素
:return:
"""
l = ['Cats', 'Dogs']
rest = self.r.sadd('zoo3', *l)
print rest
rest = self.r.smembers('zoo3')
print rest

def test_srem(self):
"""
sadd/srem --添加/删除元素
:return:
"""
rest = self.r.srem('zoo2','Dogs')
print rest
rest = self.r.smembers('zoo2')
print rest

def test_sinter(self):
"""
sinter --返回几个集合对象的交集
sunion --返回几个集合对象的并集
:return:
"""
rest = self.r.sunion('zoo2', 'zoo3')
print rest
rest = self.r.sinter('zoo2','zoo3')
print rest

def main():
test_obj = TestSet()
test_obj.test_sadd()
test_obj.test_srem()
test_obj.test_sinter()

if __name__ == '__main__':
main()


4.散列

class TestHash(Base):
"""
hset/hget --设置/获取散列值
hmset/hmget --设置/获取多对散列值
hsetnx --如果散列已经存在,则不设置
hkeys/hvals --返回所有Keys/Values
hlen -- 返回散列包含域
"""

def test_set(self):
"""
hset/hget --设置/获取散列值
:return:
"""
reset = self.r.hset('stu:xxx01','name','Amy')
print reset
reset = self.r.hexists('stu:xxx01','name')
print reset
reset = self.r.hget('stu:xxx01','name')
print reset

def test_mset(self):
"""
hmset/hmget --设置/获取多对散列值
:return:
"""
m = {
'name':'Bob',
'age':21,
'grade':98
}
rest = self.r.hmset('stu:xxx03',m)
print rest
rest = self.r.hkeys('stu:xxx03')
print rest

def main():
hash_obj = TestHash()
hash_obj.test_set()
hash_obj.test_mset()

if __name__ == '__main__':
main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: