redis hash(字典结构)与python交互的学习与使用

1、说明:

主要是根据redis的即可缓存到内存中,又可以持久化到磁盘中,很受青睐。

最近有个项目想用类似于字典的结构,今天,在家学习一下,把封装好的整理出来,比较简单。方便实用即可。

2、代码:

话不多说,直接上代码,我觉得会python一看就懂了。

import redis
import random

class Redis_database:
    def __init__(self,host='localhost', port=6379, db=3, password='123456'):
        self.redis_config = redis.Redis(host=host, port=port, db=db, password=password,decode_responses=True)

    def redis_right_add(self,key,val):
        self.redis_config.rpush(key,val)

    def redis_left_pop(self,key):
        return self.redis_config.lpop(key)

    def redis_hash_set(self,name,key,value):
        self.redis_config.hset(name,key,value)

    def redis_get_hash_keys(self,name):
        return self.redis_config.hgetall(name)

    def redis_get_hash_key_value(self,name,key):
        return self.redis_config.hget(name,key)

    def redis_hash_isexist(self,name,key):
        return self.redis_config.hexists(name,key)


if __name__ == '__main__':
    redis_config = Redis_database()
    # # list 集合测试
    # # 右侧存入
    # key = "new_1"
    # val = "1234565"
    # redis_config.redis_right_add(key,val)
    # # 左侧弹出
    # key_val = redis_config.redis_left_pop(key)
    # print("key_val",key_val)
    hash_name = "demo_first_hash"
    key = "abcde"
    for key_i in key:
        redis_config.redis_hash_set(hash_name,key=key_i,value=random.random())
    keys = redis_config.redis_get_hash_keys(hash_name)
    print("keys:", keys)
    value = redis_config.redis_get_hash_key_value(hash_name,key='a')
    print("hash的key为a的值:",value)

    is_exist = redis_config.redis_hash_isexist(hash_name,'a')
    print("is_exist:",is_exist)
    is_exist2 = redis_config.redis_hash_isexist(hash_name,'www')
    print("is_exist:", is_exist2)
    # 后续可以根据是否存在还进行赋值或者更改都可以


结果:

keys: {'a': '0.7545114117349148', 'b': '0.7041154100077067', 'c': '0.9811679103825031', 'd': '0.5325373688130394', 'e': '0.0386924097329836'}
hash的key为a的值: 0.7545114117349148
is_exist: True
is_exist: False

后面的根据需要可以使用了。

3、redis连接池:

将上面的方法换为下面这个,就是使用redis连接池使用了。生产环境可以更稳定的使用redis。

    def __init__(self, host='localhost', port=6379, db=0, password='123456',username=None):
        # self.server = redis.Redis(host=host, port=port, db=db, password=password,username=username,decode_responses=True)
        pool = redis.ConnectionPool(host=host, port=port, db=db, password=password,username=username)
        self.server = redis.Redis(connection_pool=pool)
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值