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 restreturn restdef test_get(self):rest = self.r.get('user2')print restreturn restdef test_mset(self):"""mset --设置多个键值对:return:"""d = {'user1': 'XH','user3': 'Bob','user4': 'Bobx'}rest = self.r.mset(d)print restreturn restdef test_mget(self):"""mget --获取多个键值对:return:"""l = ['user1','user2','user3','user4','user6']rest = self.r.mget(l)print restreturn restdef test_del(self):"""del 删除:return:"""rest = self.r.delete('user1')print restreturn restdef 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 resetreset = self.r.lrange('l_eat2', 0, -1)print resetdef test_pop(self):"""lpop/rpop -- 移除最左/右的元素并返回:return:"""rest = self.r.lpop('l_eat2')print restreset = self.r.lrange('l_eat2', 0, -1)print resetdef main():# listlist_obj = TestList()#list_obj.test_push() list_obj.test_pop()if __name__ == '__main__':main()
redis的基本使用。
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 restrest = self.r.smembers('zoo3')print restdef test_srem(self):"""sadd/srem --添加/删除元素:return:"""rest = self.r.srem('zoo2','Dogs')print restrest = self.r.smembers('zoo2')print restdef test_sinter(self):"""sinter --返回几个集合对象的交集sunion --返回几个集合对象的并集:return:"""rest = self.r.sunion('zoo2', 'zoo3')print restrest = self.r.sinter('zoo2','zoo3')print restdef 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/Valueshlen -- 返回散列包含域"""def test_set(self):"""hset/hget --设置/获取散列值:return:"""reset = self.r.hset('stu:xxx01','name','Amy')print resetreset = self.r.hexists('stu:xxx01','name')print resetreset = self.r.hget('stu:xxx01','name')print resetdef test_mset(self):"""hmset/hmget --设置/获取多对散列值:return:"""m = {'name':'Bob','age':21,'grade':98}rest = self.r.hmset('stu:xxx03',m)print restrest = self.r.hkeys('stu:xxx03')print restdef main():hash_obj = TestHash()hash_obj.test_set()hash_obj.test_mset()if __name__ == '__main__':main()