python操作redis

一,python安装redis模块

pip3 install -y redis

 

二,python连接redis

import redis

r = redis.Redis(host='192.168.1.108',port=6379,password='dasini',db=0)

# r = redis.StrictRedis(host='192.168.1.108',port=6379,db=0)端口可以默认可以不写

r.set('name','test')

print(r.get('name'))

#redis输出的结果默认是二进制流,为了方便其他代码处理,所以我们可以添加decode_resopnses=True.

import redis

r = redis.Redis(host='192.168.1.108',port=6379,password='dasini',db=0,decode_responses=True)

r .set('name','python')

print(r.get('name'))

  

三,使用连接池

import redis

pool = redis.ConnectionPool(host='192.168.1.108',port=6379,password='dasini',db=0,decode_responses=True)

r = redis.Redis(connection_pool=pool)

r.set('name2','ruby')

print(r.get('name2'))

 

四,常用的数据类型的操作

 

a,String操作

import redis

pool=redis.ConnectionPool(host='192.168.1.108',port=6379,password='dasini',db=0,decode_responses=True)

r = redis.Redis(connection_pool=pool)


#set(name, value, ex=None, px=None, nx=False, xx=False) 创建key和value
'''
ex 表示过期时间,以s为单位
px 表示过期时间,以ms为单位
nx 当nx的值为True时,如果name不存在,则执行set操作
xx 当xx的值为True时,如果name存在,则执行set操作
'''

r.set('name','python')

print(r.get('name'))

                # 运行结果:python

#创建过期时间的key

r.set('sex','male',ex=100)
print(r.get('sex'))



#setnx,和set中的参数nx一样,如果key存在,则不执行set操作。

r.setnx('name','ruby')

print(r.get('name'))

                # 运行结果:python


#setex,psetex 和set中参数ex一样,可以设置生命周期,其中setex单位为s,psetex单位为ms.

r.setex('address','sh',100)
r.psetex('mail',100,'ttsir@foxmail.com')


#mset  批量设置key

r.mset(name1='tom',name2='jack')

print(r.mget('name1','name2'))


#append往  key里面追加内容

r.set('mystring','good good study study')
r.append('mystring',' day day up up')

print(r.get('mystring'))

  

 b,list常用操作

#删除testlist
r.delete('testlist')
#从列表左边插
r.lpush('testlist',1)
r.lpush('testlist',2)

#从列表右边插
r.rpush('testlist',3)

#输出列表的内容
print(r.lrange('testlist',0,-1))

#计算列表的元素

print(r.llen('testlist'))

#在列表指定位置插入值

r.linsert('testlist','after',3,4)   #在testlist列表中找到下标为3的元素然后在它后面插入4

print(r.lrange('testlist',0,-1))

#更改列表中的指定下标的值

r.lset('testlist',0,10000)

print(r.lrange('testlist',0,-1))

#删除列表中的元素
r.lpush('testlist',1)
print(r.lrange('testlist',0,-1))
r.lrem('testlist',1)
print(r.lrange('testlist',0,-1))


#删除列表中最后1个元素或者第一个元素
r.lpop('testlist')

print(r.lrange('testlist',0,-1))

r.rpop('testlist')
print(r.lrange('testlist',0,-1))


#根据下标获取某个值

r.lindex('testlist',0)

print(r.lrange('testlist',0,-1))

  

c,无序集合操作(set)

#sadd 给集合添加元素

r.sadd('set1',1)
r.sadd('set1',2)

#scard 输出集合中元素的个数
print(r.scard('set1'))

#smembers 获取字典中所有的元素

print(r.smembers('set1'))

#spop 删除集合中的最后一个元素并将其返回

print(r.spop('set1'))
print(r.smembers('set1'))

#srem 删除集合中的元素

r.sadd('set1',4)

r.srem('set1','4')

print(r.smembers('set1'))

  

d,有序集合(sorted set),对于有序集合,每一个元素有两个值

#zadd 创建添加有序集合,默人是以升序的方式显示

# r.delete('set2')
r.zadd('set2','apple',13,'banana',12)
print(r.zrange('set2',0,-1))

#反序的形式输出
print(r.zrevrange('set2',0,-1))

#返回有序集合元素的个数

print(r.zcard('set2'))

#删除有序集合的元素

print(r.zrem('set2','apple'))

print(r.zrange('set2',0,-1))

  

e,hash操作

#hset 创建hash添加元素

r.hset('h1','name','dasini')

print(r.hget('h1','name'))

#hmset 创建多个元素


r.hmset('h2',{'name':'tom','sex':'male'})
print(r.hmget('h2','name','sex'))

#hlen 判断hash的个数

print(r.hlen('h2'))


#hkeys 获取set对应的hash中所有的key的值

print(r.hkeys('h2'))

#hvals获取set对应的hash中所有的value的值

print(r.hvals('h2'))


#hdel将set对应的hash中指定key的键值对删除

print(r.hdel('h2','name'))

print(r.hgetall('h2'))

  

 

posted @ 2018-06-01 14:00  某电商首席日志工程师  阅读(797)  评论(0编辑  收藏  举报