Windows10中基于Python的Redis库的安装及使用

主要内容

在Windows10中,安装基于python的redis库,并连接redis-server服务器
python中使用redis库操作字符串、哈希、列表、集合和有序集合

安装准备

  1. 确保已经在本地安装了redis-server服务器,这里以在windows10上安装redis为例,安装过程可参考

Windows10安装Redis5.0.9总结

  1. 启动redis-server
#若是没有把redis没有把redis的根目录配置到配置环境变量中,则需要先切换到根目录再执行:
redis-server
#启动redis服务后,使用以下命令启动客户端:
redis-cli
#若显示以下信息说明启动redis-server可被正常连接
#C:\Users\Lenovo>redis-cli
#127.0.0.1:6379>
  1. 这里假设你已经具备了python的开发环境,并且可在pycharm开发工具中正常使用

若没有安装redis,这里则需要在pycharm的Terminal中执行:

pip install redis

python中使用redis

示例1:redis连接、字符串键值对操作

import redis


# 普通连接
def redis_connect():
    rd = redis.StrictRedis(host='127.0.0.1', port=6379, db=0, decode_responses=True)
    try:
        rd.set('mykey', 'myvalue')
        print(rd.get('mykey'))
    except Exception as e:
        print(f'connect failed:{e}')


# 使用redis连接池获取连接
def redis_pool_connect():
    # 连接池
    pool = redis.ConnectionPool(max_connections=100, host='127.0.0.1', port=6379, db=1, decode_responses=True)
    rd = redis.Redis(connection_pool=pool)
    return rd


# get、set、delete方法
def set_test():
    rd = redis_pool_connect()
    try:
        rd.set('username', "张三")
        print('xxxx')
        username = rd.get('username')
        print(f"username={username}")
        res = rd.delete(username)
        print(f'删除res={res}')
    except Exception as e:
        print(f'redis异常:{e}')


# mset,mget方法
def mset_test():
    rd = redis_pool_connect()
    # 同时设置多个键值对
    rd.mset({'name1': 'mike', "name2": 'Tom', "name3": 'Jason'})
    # 取出多个键对应的值,返回list
    names = rd.mget("name1", "name2", "name3")
    print(f"mget----names={names}")
    # ['mike', 'Tom', 'Jason']

    # 取出某个值,并且再设置这个值为新的
    # name1 = rd.get("name1")
    # print(f"name1={name1}")
    # rd.set("name1", "Lucy")

    name = rd.getset("name1", "Lucy")
    print(f"name={name}")
    name1 = rd.get("name1")
    print(f"name1={name1}")
    # 如果不存在则返回:None
    res = rd.get("name999")
    if res:
        print('not exist')


# hset,hget, hekeys方法
def hset_test():
    rd = redis_pool_connect()
    rd.hset("myhash", "key1", "value1")
    rd.hset("myhash", "key2", "value2")
    keys = rd.hkeys("myhash")
    print(f'所有键:{keys}')
    values = rd.hvals("myhash")
    print(f'所有值:{values}')
    ret = rd.hexists("myhash", "key1")
    if ret:
        print("[hexists] key1 存在")
    else:
        print("[hexists] key1 不存在")
    # hget不存在返回None
    val = rd.hget("myhash", "key14")
    print(f"[hget]key---{val}")


# hmset,hmvals 方法
def hmset_test():
    rd = redis_pool_connect()
    # DeprecationWarning: Redis.hmset() is deprecated. Use Redis.hset() instead.
    rd.hmset("namehash", {"name1": "zhangsna", "name2": "lisi", "name3": "wangwu"})
    keys = rd.hkeys("namehash")
    print(f'[hkeys]所有键的名称:{keys}')
    vals = rd.hvals("namehash")
    print(f'[hvals]所有的值:{vals}')

    name1, name2 = rd.hmget("namehash", "name1", "name2")
    print(f'[hmget]name1的值:{name1},name2的值:{name2}')

    rd.hmset("mymhash", {"key1": "value1", "key2": "value2"})
    res = rd.hmget("mymhash", "key1", "key2")
    print(res)


if __name__ == '__main__':
    set_test()
    mset_test()
    hset_test()
    hmset_test()

示例2:redis集合、列表操作

# 连接池
import redis

pool = redis.ConnectionPool(max_connections=100, host='127.0.0.1', port=6379, db=1, decode_responses=True)
rd = redis.Redis(connection_pool=pool)


def redis_list():
    # 列表左边压入元素
    rd.lpush("mylist", "a")
    rd.lpush("mylist", "b", "c", "d", "e", "f")
    elem = rd.lpop("mylist")
    print(f'列表头部弹出元素:{elem}')
    # 右边压入
    rd.rpush("mylist", 1, 2, 3)
    len = rd.llen("mylist")
    print(f"列表元素个数:{len}")
    # 取出第1个元素到最后一个元素
    arr = rd.lrange("mylist", 0, -1)
    print(f'列表中所有元素{arr}')
    elem = rd.rpop("mylist")
    print(f"列表右边谈出一个元素:{elem}")
    elem = rd.lindex("mylist", 0)
    print(f"查看第1个元素:{elem}")
    rd.delete("mylist")
    print(f"删除mylist后长度:{rd.llen('mylist')}")


def set_test():
    rd.sadd("myset", "value1", "value2", "value3", "value4", "value5")
    elems = rd.sscan('myset')
    print(f"集合中所有元素:{elems}")
    elems = rd.smembers("myset")
    print(f"集合中所有元素:{elems}")
    # 添加一个重复的元素,返回0
    res = rd.sadd("myset", "value2")
    print(f"加入一个重复的元素:{res}")
    res = rd.sismember("myset", "value1")
    print(f"myset中是否有一个成员:{res}")
    res = rd.srem("myset", "value1")
    print(f"删除元素的个数:{res}")
    print(f"元素是否存在:{rd.sismember('myset', 'value1')}")
    elem = rd.spop("myset")
    print(f"删除一个元素:{elem}")


def set_calculate():
    rd.sadd("myset1", "a", "b", "c")
    elems = rd.smembers("myset1")

    print(f"myset1元素:{elems}")
    elems = rd.smembers("myset2")

    rd.sadd("myset2", "c", "d", "e", "f")
    print(f"myset2元素:{elems}")
    # 属于myset1但不属于myset2的集合
    df = rd.sdiff("myset1", "myset2")
    print(f"两个集合的差集:{df}")

    inter = rd.sinter("myset1", "myset2")
    print(f"集合的交集:{inter}")

    union = rd.sunion("myset1", "myset2")
    print(f"集合的并集:{union}")


def zset_test():
    # 数值表示有序集合元素的分值
    dic = {"张三": 80, "李四": 95}
    rd.zadd("users", dic)
    rd.zadd("users", {"王五": 83, "赵六": 79, "小昭": 93, "小明": 89})
    nums = rd.zcard("users")
    print(f"有序集合的个数:{nums}")
    # withscores=True表示显示成员的分数
    elems = rd.zrange("users", 0, -1, withscores=True)
    print(f"所有有序集合:{elems}")
    # 删除有序集合中元素
    rd.zrem("users", "李四")
    elems = rd.zrange('users', 0, -1)
    print(f"所有元素集合:{elems}")
    # 删除0,1元素
    # rd.zremrangebyrank("users", 0, 1)
    # print(f"删除集合之后:{rd.zrange('users', 0, -1)}")
    rd.zremrangebyscore("users", 80, 90)
    print(f"删除分值[80,90]范围的集合之后:{rd.zrange('users', 0, -1, withscores=True)}")

if __name__ == "__main__":
    redis_list()
    set_test()
    set_calculate()
    zset_test()

更多详细可参考官方文档:python的redis库

Redis 7.0.11是一款流行的开源内存数据库软件,其Windows版是为Windows平台上的用户提供的版本。作为一个基于内存的数据库Redis在数据存储和访问方面表现出色,具有高效的读写能力和低延迟的响应速度。 Redis 7.0.11 Windows版在功能上与其他平台上的Redis版本基本一致,但在安装使用上有一些差异。首先,在Windows安装Redis可以通过下载官方提供的可执行文件进行,这样可以轻松地进行安装和配置。用户可以选择将Redis作为服务安装Windows系统,也可以作为可执行文件直接运行。 Redis 7.0.11 Windows版支持与其他编程语言(如Java、Python、C#等)的集成,可以通过各种语言的Redis客户端Redis服务器进行通信,实现数据的读写和管理。这使得开发者可以方便地在Windows平台上开发和部署基于Redis的应用程序。 尽管Redis主要是为Linux平台设计的,但Redis 7.0.11 Windows版仍然为Windows用户提供了一个可靠和稳定的解决方案。RedisWindows平台上的性能可能会受到一些限制,因为Windows系统本身的性能和特性与Linux有所不同。但是,对于小规模的应用和开发环境来说,RedisWindows版仍然是一个非常合适的选择。 总的来说,Redis 7.0.11 Windows版是一个强大且易于使用的内存数据库软件,为Windows平台上的用户提供了一种高效和方便的数据存储和访问方案。无论是用于开发环境还是生产环境,RedisWindows版都能够满足大多数用户的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值