如何用Python操作Redis

时间:2019-02-14
本文章向大家介绍如何用Python操作Redis,主要包括如何用Python操作Redis使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

想要用Python操作Redis,就要掌握虚拟环境redis安装以及开启Redis服务器的命令.
具体操作如下:

-一. 掌握虚拟环境redis安装

安装包

  • 第一种:进入虚拟环境py_django,联⽹安装包redis

    pip install redis

  • 第二种:进⼊虚拟环境py_django,联⽹安装包redis

    easy_install redis

  • 第三种:到中⽂官⽹-客户端下载redis包的源码,使⽤源码安装

    一步步执行 wget https://github.com/andymccurdy/redis-py/archive/master.zip
    unzip master.zip
    cd redis-py-master
    sudo python setup.py install

调用模块

  • 引用模块

    from redis import StrictRedis

  • 这个模块中提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供了不同方法,进行交互操作

二.了解Redis服务器端和客户端的命令

服务器端

  - 服务器端的命令为redis-server

  - 可以使用help查看帮助文档

    > redis-server --help

  - 推荐使用服务的方式管理redis服务

  - 启动

    > sudo service redis start

  - 停止

    > sudo service redis stop

  - 重启 sudo service redis restart

  - 习惯

    > ps -ef|grep redis 查看redis服务器进程
    > sudo kill -9 pid 杀死redis服务器
    ** sudo redis-server /etc/redis/redis.conf 指定加载的配置文件**


  # 客户端

  - 客户端的命令为redis-cli

  - 可以使用help查看帮助文档

     redis-cli --help

  - 连接redis

     redis-cli

  - 测试命令

     ping

  - 切换数据库

  - 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库

    select n

三.Python操作Redis:

准备工作:

  • 使用pycharm新建 redis目录
  • 创建redis_string.py文件

String字符串类型:

#1.导入StrictRedis
from redis import StrictRedis
if __name__ == '__main__':
    try:
        #2.创建对象,连接到redis服务器
        sr = StrictRedis()

        #string方法如下:
        #设置键值
        res = sr.set('name','wangwu')
        print(res)

        #获取值:
        res = sr.get('name')
        print(res)

        #设置多个键值:
        res = sr.mset({'age':'18','gender':'false'})
        print(res)

        #追加值:
        res = sr.append('name','zi')
        print(res)

        #删除键值:
        res = sr.delete('name')
        print(res)

        #判断key是否存在
        res = sr.exists('name')
    except Exception as error:
        print(error)

hash哈希类型:

#导入StritRedi
from redis import StrictRedis

if __name__ == '__main__':

    try:
        #创建对象,连接到redis服务器
        hash = StrictRedis()

        #hash方法如下:

        #1.设置单个属性:hset key field value
        ha = hash.hset('user','name','hww')
        # print(ha)

        #2.设置多个属性:hmset key field1 value1 field2 value2
        ha = hash.hmset('h1',{'name':'anqi','gender':'true'})
        # print(ha)

        #3.获取制定键所有的属性:hkeys key
        ha = hash.hkeys('h1')
        print(ha)

        #4.获取一个属性的值:hget key field
        ha = hash.hget('h1','name')
        print(ha)

        #5.获取多个属性的值:hmget key field1 field2
        ha = hash.hmget('h1','name','gender')
        print(ha)

        #6.获取所有属性的值:hvals key
        ha = hash.hvals('h1')
        print(ha)

        #7.删除:hdel key field1 field2 ...
        ha = hash.delete('user','name')
        print(ha)


    except Exception as error:
        print("error")

list列表类型:

#导入StritRedis
from redis import StrictRedis

if __name__ == '__main__':

    try:
        #创建对象,连接到redis服务器
        hash = StrictRedis()

        #hash方法如下:

        #1.设置单个属性:hset key field value
        ha = hash.hset('user','name','hww')
        # print(ha)

        #2.设置多个属性:hmset key field1 value1 field2 value2
        ha = hash.hmset('h1',{'name':'anqi','gender':'true'})
        # print(ha)

        #3.获取制定键所有的属性:hkeys key
        ha = hash.hkeys('h1')
        print(ha)

        #4.获取一个属性的值:hget key field
        ha = hash.hget('h1','name')
        print(ha)

        #5.获取多个属性的值:hmget key field1 field2
        ha = hash.hmget('h1','name','gender')
        print(ha)

        #6.获取所有属性的值:hvals key
        ha = hash.hvals('h1')
        print(ha)

        #7.删除:hdel key field1 field2 ...
        ha = hash.delete('user','name')
        print(ha)


    except Exception as error:
        print("error")

set无序集合:

from redis import StrictRedis

if name == ‘main’:

try:
    #1.创建对象,连接到redis服务:
    set = StrictRedis()

    #2.设置无序集合:sadd key member1 member2...
    res = set.sadd('set1','zhangsan','lisi','wangwu')
    print(res)

    #3.获取所有元素:smembers('key')
    res = set.smembers('set1')
    print(res)

    #4.删除指定元素:srem key member
    res = set.srem('set1','lisi')
    print(res)



except Exception as error:

    print("error")

zset有序列表集合:

from redis import StrictRedis

if __name__ == '__main__':

    try:
        #1.创建对象,连接redis服务:
        set = StrictRedis()

        #2.增加有序集合:
        #zadd python调用的方法跟redis原生的方法不一样,redis是先权重后元素,python则是先元素后权重
        res = set.zadd('zset1',{'zhangsan':1,'lisi':2,'wangwu':3})
        # print(res)

        #3.获取指定范围内的元素:zrange key start stop
        res = set.zrange('zset1',0,-1)
        print(res)

        #4.获取权重(score)值在min和max之间的成员:zrangebyscore('key',min,max)
        res = set.zrangebyscore('zset1',2,3)
        print(res)

        #5.获取成员member的权重score值:
        res = set.zscore('zset1','zhangsan')

        print(res)

        #6.删除指定元素:zrem key member
        res = set.zrem('zset1','wangwu')
        print(res)

        #7.删除权重所对应的成员元素:zremrangebyscore('key',min,max)
        res = set.zremrangebyscore('zset1',2,3)
        print(res)


    except Exception as error:

        print("error")