0.说明
由于学习开发监控软件的需要,因此需要使用到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>></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>> 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>> </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>> </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>> </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>> 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>> 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>> 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>> 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>> 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>>>> </code><code>import</code> <code>redis</code>
<code>>>> 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>>>> 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>>>> 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>>>> r[</code><code>'xpleaf'</code><code>]</code>
<code>'xpleaf'</code>
<code>或</code>
<code>>>> r.</code><code>get</code><code>(</code><code>'xpleaf'</code><code>)</code>
<code>#保存python中的字典到redis数据库中</code>
<code>>>> </code><code>import</code> <code>json</code>
<code>>>> 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>>>> r[</code><code>'py_mydict'</code><code>] = json.dumps(mydict)</code>
<code>>>> </code>
<code>>>> r[</code><code>'py_mydict'</code><code>]</code>
<code>'{"age": 21, "name": "xpleaf", "loving": "cl"}'</code>
<code>#取出保存在redis数据库中的python字典</code>
<code>>>> a = json.loads(r[</code><code>'py_mydict'</code><code>])</code>
<code>>>> 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>>>> a[</code><code>'name'</code><code>]</code>
<code>u</code><code>'xpleaf'</code>