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()