附录 B :redis-py 安装方法
===============================

本书的绝大部分代码示例都使用 Python 语言编写,
并且使用了 redis-py 客户端来连接服务器并发送命令请求。

如果你正在使用的电脑尚未安装 Python ,
那么请访问 Python 的官方网站并按照文档中介绍的方法下载并安装相应的编程环境:
https://www.python.org/downloads/ 。

因为本书的程序都是使用 Python 3 编写的,
所以在下载 Python 安装程序的时候,
请确保你下载的是 Python 3 而不是 Python 2 的安装程序。

在安装 Python 之后,
你应该可以通过输入以下命令来运行该语言的解释器:

::

    $ python3
    Python 3.7.3 (default, Mar 27 2019, 09:23:15) 
    [Clang 10.0.1 (clang-1001.0.46.3)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 

在安装完 Python 语言环境之后,
我们就可以通过执行以下命令,
使用其附带的 pip 程序来安装 redis-py 客户端了:

::

    $ pip install redis

在成功安装 redis-py 之后,
我们就能够在 Python 解释器里面载入这个库了:

::

    >>> from redis import Redis             # 载入库
    >>> client = Redis()                    # 创建客户端实例
    >>> client.set("msg", "hello world")    # 执行 SET 命令
    True
    >>> client.get("msg")                   # 执行 GET 命令
    b'hello world'                          # 未解码的值

注意,
正如这里展示的 ``GET`` 命令执行结果所示,
redis-py 默认将返回编码后的值作为结果。
如果我们想让 redis-py 在操作字符串数据的时候自动对其实施解码,
那么只需要在创建客户端实例的时候将 ``decode_responses`` 可选项的值设置为 ``True`` 即可,
就像这样:

::

    >>> client = Redis(decode_responses=True)
    >>> client.get("msg")
    'hello world'           # 字符串已解码

最后,
如果你有兴趣的话,
还可以通过执行以下命令查看 redis-py 目前支持的 Redis 命令:

::

    >>> for i in dir(client):
    ...   print(i)
    ...
    RESPONSE_CALLBACKS
    __class__
    # ...
    _zaggregate
    append
    bgrewriteaof
    bgsave
    bitcount
    bitfield
    bitop
    bitpos
    # ...
    zscan
    zscan_iter
    zscore
    zunionstore