天天看点

【Python之旅】第七篇(二):Redis使用基础

    由于学习开发监控软件的需要,因此需要使用到Redis,这里简单介绍。

    注意,使用的环境为:Ubuntu 15.10

1.安装

    可以采用源码安装,也可以采用apt-get来安装,都比较简单。

2.启动

    由于采用的是源码安装的方式,所以直接进入src目录,启动redis-server:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<code>xpleaf@xpleaf-machine:/mnt/hgfs/Python/day7/redis-</code><code>2.8</code><code>.</code><code>9</code><code>/src$ ./redis-server </code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.964</code> <code># Warning: no config file specified, using the </code><code>default</code> <code>config. In order to specify a config file </code><code>use</code> <code>./redis-server /path/to/redis.conf</code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.967</code> <code># You requested maxclients of </code><code>10000</code> <code>requiring at least </code><code>10032</code> <code>max file descriptors.</code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.968</code> <code># Redis can't </code><code>set</code> <code>maximum open files to </code><code>10032</code> <code>because of OS error: Operation not permitted.</code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.968</code> <code># Current maximum open files </code><code>is</code> <code>1024</code><code>. maxclients has been reduced to </code><code>4064</code> <code>to compensate </code><code>for</code> <code>low ulimit. If you need higher maxclients increase </code><code>'ulimit -n'</code><code>.</code>

<code>                </code><code>_._                                                  </code>

<code>           </code><code>_.-``__ </code><code>''</code><code>-._                                             </code>

<code>      </code><code>_.-``    `.  `_.  </code><code>''</code><code>-._           Redis </code><code>2.8</code><code>.</code><code>9</code> <code>(</code><code>00000000</code><code>/</code><code>0</code><code>) </code><code>64</code> <code>bit</code>

<code>  </code><code>.-`` .-```.  ```\/    _.,_ </code><code>''</code><code>-._                                   </code>

<code> </code><code>(    '      ,       .-`  | `,    )     Running </code><code>in</code> <code>stand alone mode</code>

<code> </code><code>|`-._`-...-` __...-.``-._|</code><code>'` _.-'</code><code>|     Port: </code><code>6379</code>

<code> </code><code>|    `-._   `._    /     _.-'    |     PID: </code><code>12681</code>

<code>  </code><code>`-._    `-._  `-./  _.-</code><code>'    _.-'</code>                                   

<code> </code><code>|`-._`-._    `-.__.-</code><code>'    _.-'</code><code>_.-'|                                  </code>

<code> </code><code>|    `-._`-._        _.-</code><code>'_.-'</code>    <code>|           http:</code><code>//redis.io        </code>

<code>  </code><code>`-._    `-._`-.__.-</code><code>'_.-'</code>    <code>_.-'                                   </code>

<code> </code><code>|    `-._`-._        _.-</code><code>'_.-'</code>    <code>|                                  </code>

<code>      </code><code>`-._    `-.__.-</code><code>'    _.-'</code>                                       

<code>          </code><code>`-._        _.-'                                           </code>

<code>              </code><code>`-.__.-'                                               </code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.974</code> <code># Server started, Redis version </code><code>2.8</code><code>.</code><code>9</code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.974</code> <code># WARNING overcommit_memory </code><code>is</code> <code>set</code> <code>to </code><code>0</code><code>! Background save may fail under low memory condition. To fix </code><code>this</code> <code>issue add </code><code>'vm.overcommit_memory = 1'</code> <code>to /etc/sysctl.conf and then reboot or run the command </code><code>'sysctl vm.overcommit_memory=1'</code> <code>for</code> <code>this</code> <code>to take effect.</code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.976</code> <code>* DB loaded from disk: </code><code>0.002</code> <code>seconds</code>

<code>[</code><code>12681</code><code>] </code><code>16</code> <code>Oct </code><code>00</code><code>:</code><code>06</code><code>:</code><code>52.977</code> <code>* The server </code><code>is</code> <code>now ready to accept connections on port </code><code>6379</code>

    出现上面所示的提示,说明已经正常启动了redis。

3.交互式操作

    进入src目录,运行redis-cli即可进入redis交互界面:

<code>xpleaf@xpleaf-machine:/mnt/hgfs/Python/day7/redis-</code><code>2.8</code><code>.</code><code>9</code><code>/src$ ./redis-cli</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt;</code>

    基本操作:

28

29

30

31

32

33

34

35

36

37

38

39

40

<code>#查看帮助</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; help </code><code>set</code>

<code>  </code><code>SET key value [EX seconds] [PX milliseconds] [NX|XX]</code>

<code>  </code><code>summary: Set the string value of a key</code>

<code>  </code><code>since: </code><code>1.0</code><code>.</code><code>0</code>

<code>  </code><code>group: string</code>

<code>#创建key-value</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; </code><code>set</code> <code>name xpleaf</code>

<code>OK</code>

<code>#获得key对应的value</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; </code><code>get</code> <code>name</code>

<code>"xpleaf"</code>

<code>#创建有时间的key-value</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; </code><code>set</code> <code>name2 CL ex </code><code>5</code>

<code>#创建列表</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; lpush stu_list xpleaf yonghaoye CL</code>

<code>(integer) </code><code>3</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; lpush stu_list CLYYH</code>

<code>(integer) </code><code>4</code>

<code>#获取列表内容</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; lrange stu_list </code><code>1</code> <code>4</code>

<code>1</code><code>) </code><code>"CL"</code>

<code>2</code><code>) </code><code>"yonghaoye"</code>

<code>3</code><code>) </code><code>"xpleaf"</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; lrange stu_list </code><code>0</code> <code>4</code>

<code>1</code><code>) </code><code>"CLYYH"</code>

<code>2</code><code>) </code><code>"CL"</code>

<code>3</code><code>) </code><code>"yonghaoye"</code>

<code>4</code><code>) </code><code>"xpleaf"</code>

<code>#删除key-value或其它数据类型</code>

<code>127.0</code><code>.</code><code>0.1</code><code>:</code><code>6379</code><code>&gt; del name</code>

<code>(integer) </code><code>1</code>

3.在Python交互器中使用redis

要使用Python来操作Redistribute,则需要安装Python与Redis通信的接口:

<code>apt-</code><code>get</code> <code>install python-redis</code>

在交互器中连接Redis数据库:

<code>&gt;&gt;&gt; </code><code>import</code> <code>redis</code>

<code>&gt;&gt;&gt; r = redis.Redis(</code><code>'127.0.0.1'</code><code>, port=</code><code>6379</code><code>, db=</code><code>0</code><code>)</code>

基本操作

<code>#查看所有的key</code>

<code>&gt;&gt;&gt; r.keys()</code>

<code>[</code><code>'YourKey'</code><code>, </code><code>'stu_list'</code><code>, </code><code>'k1'</code><code>, </code><code>'k3'</code><code>]</code>

<code>&gt;&gt;&gt; r.</code><code>set</code><code>(</code><code>'xpleaf'</code><code>, </code><code>'xpleaf'</code><code>)</code>

<code>True</code>

<code>#获取key所对应的value</code>

<code>&gt;&gt;&gt; r[</code><code>'xpleaf'</code><code>]</code>

<code>'xpleaf'</code>

<code>或</code>

<code>&gt;&gt;&gt; r.</code><code>get</code><code>(</code><code>'xpleaf'</code><code>)</code>

<code>#保存Python中的字典到Redis数据库中</code>

<code>&gt;&gt;&gt; </code><code>import</code> <code>json</code>

<code>&gt;&gt;&gt; myDict = {</code><code>'name'</code><code>: </code><code>'xpleaf'</code><code>, </code><code>'age'</code><code>: </code><code>21</code><code>, </code><code>'loving'</code><code>: </code><code>'cl'</code><code>}</code>

<code>&gt;&gt;&gt; r[</code><code>'Py_myDict'</code><code>] = json.dumps(myDict)</code>

<code>&gt;&gt;&gt; </code>

<code>&gt;&gt;&gt; r[</code><code>'Py_myDict'</code><code>]</code>

<code>'{"age": 21, "name": "xpleaf", "loving": "cl"}'</code>

<code>#取出保存在Redis数据库中的Python字典</code>

<code>&gt;&gt;&gt; a = json.loads(r[</code><code>'Py_myDict'</code><code>])</code>

<code>&gt;&gt;&gt; a</code>

<code>{u</code><code>'age'</code><code>: </code><code>21</code><code>, u</code><code>'name'</code><code>: u</code><code>'xpleaf'</code><code>, u</code><code>'loving'</code><code>: u</code><code>'cl'</code><code>}</code>

<code>&gt;&gt;&gt; a[</code><code>'name'</code><code>]</code>

<code>u</code><code>'xpleaf'</code>

<code></code>

本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1703387,如需转载请自行联系原作者