Python轻松连接Redis

一、字符串操作

redis中的string在内存中都是按照一个key对应一个value来存储的。

1)set(name, value, ex=None, px=None, nx=False, xx=False)

     ex,过期时间(秒)

     px,过期时间(毫秒)

     nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)

     xx,如果设置为True,则只有name存在时,当前set操作才执行'''
 

例子:

import redis
redis_config = {
    "host": "192.168.2.230",
    "port":6379,
    "db":0
}
r = redis.Redis(**redis_config)
r.set("time","20171124")
print(r.get("time"))

r.mset(year="2017",month="11",date="24")
print(r.mget("year","month","date"))

r.append("date","10:13")
print (r.get("date"))

运行结果:

20171124

['2017', '11', '24']

2410:13

二、list操作

  redis中的List在内存中按照一个name对应一个List来存储

1)lpush(name,values)

  在name对应的list中添加元素,每个新的元素都添加到列表的最左边

  r.lpush("list_name",2)

  r.lpush("list_name",3,4,5)   # 保存在列表中的顺序为5,4,3,2

2)rpush(name,values)

  同lpush,但每个新的元素都添加到列表的最右边

3)lpushx(name,value)

  在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边

4)rpushx(name,value)

  在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边

5)llen(name)

  name对应的list元素的个数

  print(r.llen("list_name"))

6)linsert(name,where,refvalue,value)

  在name对应的列表的某一个值前后插入一个新值

  参数:

     name,redis的name

     where,BEFORE或AFTER

     refvalue,标杆值,即:在它前后插入数据

     value,要插入的数据

7)lset(name,index,value)

   对name对应的list中的某一个索引位置重新赋值

   参数:

    name,redis的name

    index,list的索引位置

    value,要设置的值

8)lrem(name,value,num)

  在name对应的list中删除指定的值

  参数:

  name,redis的name

  value,要删除的值

  num,  num=0,删除列表中所有的指定值;

         num=2,从前到后,删除2个;

         num=-2,从后向前,删除2个

9)lpop(name)

  在name对应的列表的左侧获取第一个元素并在列表中移除,返回值删除那个元素的值

10)rpop(name)

  表示从右向左操作

11)lindex(name,index)

  在name对应的列表中根据索引取列表元素

12)lrange(name,start,end)

  在name对应的列表分片获取数据

例1:

import redis
redis_config = {
    "host": "192.168.2.230",
    "port":6379,
    "db":0
}
r = redis.Redis(**redis_config)
r.lpush("list1",1)              # 往列表最左边,添加元素

r.lpush("list1","a","b","c")
print(r.lrange("list1",0,3))   # 从左至右,打印下标0-3对应的元素

r.rpush("list2",1)              # 往列表最右边,添加元素
r.rpush("list2","a","b","c")

print(r.lrange("list2",0,3))
print(r.llen("list1"))         # 打印列表中元素的个数

运行结果:

['c', 'b', 'a', '1']

['1', 'a', 'b', 'c']

4

例2:

import redis
redis_config = {
    "host": "192.168.2.230",
    "port":6379,
    "db":0
}
r = redis.Redis(**redis_config)
r.lpush("list111",1)
r.lpush("list111","a","b","c")
print(r.lrange("list111",0,3))

r.linsert("list1111","AFTER","a","f")   # 列表a元素后面插入f
print(r.lrange("list1111",0,-1))         # 打印列表全部元素
r.lset("list1111",3,"g")                 # 索引位置3重新设置新值
print(r.lrange("list1111",0,-1))

r.lrem("list1111","g",0)                 # 删除列表中,指定的值(以及附件N个值)
print(r.lrange("list1111",0,-1))
r.lpop("list1111")                       # 删除最左边一个值

print(r.lrange("list1111",0,-1))
print(r.lindex("list1111",1))           # 打印索引位置为1的值

运行结果:

['c', 'b', 'a', '1']

['b', 'a', 'f', '1']

['b', 'a', 'f', 'g']

['b', 'a', 'f']

['a', 'f']

f

三、set类型操作

  set集合,即不重复的列表

1)sadd(name,values)

  给name对应的集合中添加元素

  r.sadd("set_name","aa")

  r.sadd("set_name","aa","bb")

2)smembers(name)

  获取name对应的集合的所有成员

3)scard("set_name")

  获取name对应的集合中的元素个数

  sinter(keys, *args)

4)sinter("set_name1","set_name2")

  获取多个name对应集合的交集

  r.sadd("set_name","aa","bb")

  r.sadd("set_name1","bb","cc")

  r.sadd("set_name2","bb","cc","dd")

  print(r.sinter("set_name","set_name1","set_name2"))

5)sunion(keys, *args)

  获取多个name对应的集合的并集

  r.sunion("set_name","set_name1","set_name2")

6)sismember(name, value)

  检查value是否是name对应的集合内的元素

7)spop(name)

  从集合的右侧移除一个元素,并将其返回

8)srem(name, value)

  删除集合中的某个元素

  r.srem("set_name", "aa")

例子:

import redis
redis_config = {
    "host": "192.168.2.230",
    "port":6379,
    "db":0
}
r = redis.Redis(**redis_config)
r.sadd("set_name","a","b","c")   # 添加集合

print(r.smembers("set_name"))    # 打印集合
print(r.scard("set_name"))       # 打印集合长度

r.srem("set_name","a")           # 删除集合中的元素
print(r.smembers("set_name"))
  
r.sadd("set_name1","c","d","e")
print(r.sinter("set_name","set_name1"))   # 打印集合的交集
print(r.sunion("set_name","set_name1"))   # 打印集合的并集

print (r.sismember("set_name1","d"))       # 判断集合中是否存在元素
print (r.spop("set_name1"))                # 删除集合中最右边的一个元素
print(r.smembers("set_name1"))

运行结果:

set(['a', 'c', 'b'])

3

set(['c', 'b'])

set(['c'])

set(['c', 'b', 'e', 'd'])

True

e

set(['c', 'd'])

四、Hash类型操作

  Redis在内存中存储hash类型是以name对应一个字典形式存储的

1)hset(name,key,value)

  name对应的hash中设置一个键值对(不存在,则创建;否则,修改)

  参数:

  name:redis的name

  key:key1对应的hash中的key

  value:value1对应的hash中的value

  注:hsetx(name,key,value),当name对应的hash中不存在当前key则创建(相当于添加)

2)hget(name,key)

  在name对应的hash中获取根据key获取value

3)hmset(name,mapping)

  在name对应的hash中批量设置键值对

  参数:

  name:redis的name

  mapping:字典,如{'k1':'v1','k2','v2'}

4)hmget(name,keys,*args)

  在name对应的hash中获取多个key的值

  参数:

  name:redis对应的name

  keys:要获取key的集合,如:['k1','k2','k3']

  *args:要获取的key,如:k1,k2,k3

5)hgetall(name)

  获取name对应hash的所有键值

6)hlen(name)

  获取name对应的hash中键值的个数

7)hkeys(name)

  获取name对应的hash中所有的key的值

8)hvals(name)

  获取name对应的hash中所有的value的值

9)hexists(name,key)

  检查name对应的hash是否存在当前传入的key

10)hdel(name,*keys)

  将name对应的hash中指定key的键值对删除

例子:

import redis
redis_config = {
    "host": "192.168.2.230",
    "port":6379,
    "db":0
}
r = redis.Redis(**redis_config)
r.hset("dict1","name","zhao")  # 添加字典一对值
print(r.hget("dict1","name"))  # 打印字典值

r.hmset("dict1",{"age":27,"sex":"man"})  # 添加一个字典多对值
print (r.hmget("dict1","age","sex"))     # 打印一个字典多对值
print(r.hgetall("dict1"))                 # 打印一个字典全部值

print(r.hlen("dict1"))                    # 字典长度
print(r.hkeys("dict1"))                   # 字典所有key
print(r.hvals("dict1"))                   # 字典所有value
print(r.hexists("dict1","age"))          # 判断字典key是否存在

r.hdel("dict1","age")                     # 删除字典某个key
print(r.hgetall("dict1"))

运行结果:

zhao

['27', 'man']

{'age': '27', 'name': 'zhao', 'sex': 'man'}

3

['name', 'sex', 'age']

['zhao', 'man', '27']

True

{'name': 'zhao', 'sex': 'man'}

五、其他常用操作

1)delete(*names)

  根据name删除redis中的任意数据类型

2)exists(name)

  检测redis的name是否存在

3)keys(pattern='*') 

  根据* ?等通配符匹配获取redis的name

4)expire(name ,time)

  为某个name设置超时时间

5)rename(src, dst)

  重命名

6)move(name, db))

  移动key至指定的库下

7)type(name) 

  获取name对应值的类型

例子:

import redis
redis_config = {
    "host": "192.168.2.230",
    "port":6379,
    "db":0
}
r = redis.Redis(**redis_config)
r.set("name","hello")
r.delete("name1")          # 删除key
print(r.keys())

print(r.type("name"))     # 打印key类型    
r.rename("name","name1")  # 重命名key

print(r.exists("name"))   # 判断key是否存在
r.move("dict1",1)          # 移动key至其他库

睡前人工智能共享实验室新功能上线啦!

https://www.edu.futurelab.tv/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值