Redis教程

redis模块

本文主要是介绍redis模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# redis也是一个数据库
#         关系型数据库mysq。。。
#         有sql语句
#
#         非关系型数据库nosql,redis。。。。。
#         没有sql语句,基本都是 key-value 存储
#         redis--数据全部存到内存里面  10w/s 适合做缓存


import redis

redis_info ={
    "host": "110.40.129.50",
    "password": "REDIS_123456!",
    "port": 6380,  # 默认6379
    "db": 14  # 默认取0的数据库
}
r=redis.Redis(**redis_info)  #连接1
# conn=redis.Redis(host="110.40.129.50",password="REDIS_123456!",
#                  port="6380",db="14")  #连接2

#数据类型:
#第一种    string    #k-v    看类型,每个不类型不同
r.set("error_count.18612532945",5) #set插入数据  k-v
r.get("error_count.18612532945")#get获取数据
print(r.get("error_count.18612532945"))  #结果b'5'  字节类型
print(r.get("error_count.18612532945").decode())  #结果'5'  变成字符串
print(r.ttl("error_count.18612532945"))#查看失效时间,不针对某个类型都可以

r.set("token.18612532945","sdjfjergre",20)#第三个参数可以指定一个key的失效时间,是多少秒,到时间了自动就没了

# r.delete("error_count.18612532945")  删除
print(r.type("error_count.18612532945"))  #查看key类型
print("exists",r.exists("error_count.18612532945"))#查看key是否存在,存在返回1 不存在返回0

#第二种 hash类型 是个大字典,嵌套
#hash类型 只能对外面的大key指定失效时间,里面的小key不可以
# {
#     "class1":{
#         "xiaohong":1,
#         "xiaohong2":2
#     },
#     "clsaa2":{
#         "xiaobai":1,
#         "xiaobai2":3
#     }
# }

r.hset("clsaa1","xiaohong",{"id":1,"age":18})  #大k  里面是小k  存的数据
r.hset("clsaa1","xiaohei",{"id":2,"age":28})
r.hset("clsaa1","zhoujielun",{"id":3,"age":38})

r.hset("clsaa2","zhoujielun1",{"id":4,"age":48})
r.hset("clsaa2","zhoujielun2",{"id":5,"age":58})

print(r.hget("clsaa1","xiaohei"))#取出指定的
print(r.hgetall("clsaa1"))#取出所有的

r.hdel("clsaa1","xiaohei")#删除指定的key
r.delete("clsaa1") #删除大类

r.expire("clsaa1",500)#对指定的key设置失效时间
r.hexists("clsaa1","xiaohei") #指定的小key是否存在
r.hvals("clsaa1")#获取所有value
r.hkeys("clsaa1")#获取所有小key

stus={"zhangqi":"asfewf","zhulixiang":"sdafef"}
# r.hmset("clsaa1",stus)#把这个字典插进去,传一个字典,key是k,value是v,,批量,结果是建议使用r.hest
r.hest("class1",mapping=stus)#mapping参数可以指定个字典



#第三种  list

r.lpush("students","weixiangjing2","xiaohei","xiaobai")#从开头增加
# r.lpushx("students","zhulixiang") #如果这个key不存在,那么就不会新增
print(r.lrange("students",0,-1)) #去所有的
print(r.lindex("students",0)) #指定下标获取元素
print(r.llen("students")) #取list的长度
print(r.linsert("students","BEFORE","xiaohei","DAHUA"))
#在指定的位置添加元素,要传key  位置(before/after)  哪个参数  实际你要插入的值
print(r.linsert("students","AFTER","xiaohei","XIAOMING"))
# r.lset("students",0,"Zhulixiang") #修改指定下标的元素
print(r.lpop("students")) #删除末尾的元素
print(r.lrange("students",0,-1)) # 取所有的
r.lrem("students",1,"xiaohei") #删除指定的元素,传0的话,删除所有的


#第四种  集合 set
r.sadd("stu2","xiaohei","xiaozi","xiaobai") #添加
r.sadd("stu3","xiaohei","xiaolan","xiaobai") #添加
print(r.smembers("stu2") )#返回这个集合里面所有的元素
#print(r.spop("stu2"))#随机删除一个元素
print(r.sismember("stu2","xiaohei")) #判断一个元素是否在这个集合里面
print(r.scard("stu2")) #返回集合种有几个元素
print(r.sinter("stu2","stu3")) #两个集合取交集
这篇关于redis模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!