安装模块及配置

首先安装redis,在Ubuntu下输入指令pip install redis即可。下载完成后,cd到指定目录下,打开指定文件,如下图所示:

cluster python solt 获取redis python 调用redis_字符串

输入密码打开后,修改指定地方的内容,与上篇的操作MySQL雷同。

cluster python solt 获取redis python 调用redis_redis_02

python连接redis及操作

redis与mysql不同,它没有账号和密码,也没有很多的databese和table,在Linux下进入redis可以发现它会显示ip地址和端口号,如下图:

cluster python solt 获取redis python 调用redis_字符串_03

故连接redis我们只需要ip地址和端口号就可以了。首先导包:

import redis

然后创建连接

re = redis.Redis(host = '127.0.0.1',port = '6379')

进行测试

re.set('name',15)
re.set('sex','男')
print(re.get('name').decode())
print(re.get('sex').decode('utf8'))
15
男

用python操作redis与redis本身命令没多大区别,下面介绍下不同于redis中的操作:

  • 添加过期时间
re.expire('name',20)#有效时间是20秒

STRING 字符串的操作


1. r.set 设置值

set(name, value, ex=None, px=None, nx=False, xx=False)
  ex,过期时间(秒)
  px,过期时间(毫秒)
  nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
  xx,如果设置为True,则只有name存在时,当前set操作才执行

2. mset 批量设置值

#批量设置值
r.mset(name1='zhangsan', name2='lisi')
#或
r.mget({"name1":'zhangsan', "name2":'lisi'})

3. mget(keys, *args) 批量获取

#批量获取
print(r.mget("name1","name2"))
#或
li=["name1","name2"]
print(r.mget(li))

4. getset 设置新值,打印原值

print(r.getset("name1","wangwu")) #输出:zhangsan
print(r.get("name1")) #输出:wangwu

5. getrange 根据字节获取子序列

r.set("name","zhangsan")
print(r.getrange("name",0,3))#输出:zhan

6. setrange 修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加

r.set("name","zhangsan")
r.setrange("name",1,"z")
print(r.get("name")) #输出:zzangsan
r.setrange("name",6,"zzzzzzz")
print(r.get("name")) #输出:zzangszzzzzzz

7. strlen(name) 返回name对应值的字节长度

#返回name对应值的字节长度(一个汉字3个字节)
r.set("name","zhangsan")
print(r.strlen("name")) #输出:8

8.type 查看类型

r.type(name)

9、获取所有的key值

r.keys()

10、当前redis数据库中数据条数

r.dbsize()

11、删除指定的key-value值

r.set('score',100,3)
r.delete('score')

12、 清除redis里面的所有key-value

r.flushall()

Set 操作


1. sadd(name,values) 给name对应的集合中添加元素

#给name对应的集合中添加元素
r.sadd("set_name","aa")
r.sadd("set_name","aa","bb")

2. smembers(name) 获取name对应的集合的所有成员

#获取name对应的集合的所有成员
print(r.smembers('set_name'))

3. scard(name) 获取name对应的集合中的元素个数

#获取name对应的集合中的元素个数
r.scard("set_name")

4. sdiff(keys, args) 在第一个name对应的集合中且不在其他name对应的集合的元素集合

#在第一个name对应的集合中且不在其他name对应的集合的元素集合
r.sadd("set_name","aa","bb")
r.sadd("set_name1","bb","cc")
r.sadd("set_name2","bb","cc","dd")
 
print(r.sdiff("set_name","set_name1","set_name2"))#输出:{aa}

5. sinter(keys, *args) 获取多个name对应集合的并集

#获取多个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"))#输出:{bb}

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

#检查value是否是name对应的集合内的元素
sismember(name, value)

7. sunion(keys, *args) 获取多个name对应的集合的并集

#获取多个name对应的集合的并集
r.sunion("set_name","set_name1","set_name2")

8. sunionstore(dest,keys, *args) 获取多个name对应的集合的并集,并将结果保存到dest对应的集合中

9. srandmember(name, numbers) 从name对应的集合中随机获取numbers个元素

#从name对应的集合中随机获取numbers个元素
print(r.srandmember("set_name2",2))

10. srem(name, values) 删除name对应的集合中的某些值

#删除name对应的集合中的某些值
print(r.srem("set_name2","bb","dd"))