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

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
xpleaf@xpleaf-machine:/mnt/hgfs/Python/day7/redis-2.8.9/src$ ./redis-server 
[1268116 Oct 00:06:52.964 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
[1268116 Oct 00:06:52.967 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
[1268116 Oct 00:06:52.968 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
[1268116 Oct 00:06:52.968 # Current maximum open files is 1024. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 2.8.9 (00000000/064 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in stand alone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 12681
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               
 
[1268116 Oct 00:06:52.974 # Server started, Redis version 2.8.9
[1268116 Oct 00:06:52.974 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[1268116 Oct 00:06:52.976 * DB loaded from disk: 0.002 seconds
[1268116 Oct 00:06:52.977 * The server is now ready to accept connections on port 6379

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


3.交互式操作

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

1
2
xpleaf@xpleaf-machine:/mnt/hgfs/Python/day7/redis-2.8.9/src$ ./redis-cli
127.0.0.1:6379>

    基本操作:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
#查看帮助
127.0.0.1:6379> help set
 
  SET key value [EX seconds] [PX milliseconds] [NX|XX]
  summary: Set the string value of a key
  since: 1.0.0
  group: string
 
#创建key-value
127.0.0.1:6379set name xpleaf
OK
 
#获得key对应的value
127.0.0.1:6379get name
"xpleaf"
 
#创建有时间的key-value
127.0.0.1:6379set name2 CL ex 5
OK
 
#创建列表
127.0.0.1:6379> lpush stu_list xpleaf yonghaoye CL
(integer) 3
127.0.0.1:6379> lpush stu_list CLYYH
(integer) 4
 
#获取列表内容
127.0.0.1:6379> lrange stu_list 1 4
1"CL"
2"yonghaoye"
3"xpleaf"
127.0.0.1:6379> lrange stu_list 0 4
1"CLYYH"
2"CL"
3"yonghaoye"
4"xpleaf"
 
#删除key-value或其它数据类型
127.0.0.1:6379> del name
(integer) 1


3.在Python交互器中使用redis

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

1
apt-get install python-redis
  • 在交互器中连接Redis数据库:

1
2
>>> import redis
>>> r = redis.Redis('127.0.0.1', port=6379, db=0)
  • 基本操作

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
28
29
#查看所有的key
>>> r.keys()
['YourKey''stu_list''k1''k3']
 
#创建key-value
>>> r.set('xpleaf''xpleaf')
True
 
#获取key所对应的value
>>> r['xpleaf']
'xpleaf'
>>> r.get('xpleaf')
'xpleaf'
 
#保存Python中的字典到Redis数据库中
>>> import json
>>> myDict = {'name''xpleaf''age'21'loving''cl'}
>>> r['Py_myDict'] = json.dumps(myDict)
>>> 
>>> r['Py_myDict']
'{"age": 21, "name": "xpleaf", "loving": "cl"}'
 
#取出保存在Redis数据库中的Python字典
>>> a = json.loads(r['Py_myDict'])
>>> a
{u'age'21, u'name': u'xpleaf', u'loving': u'cl'}
>>> a['name']
u'xpleaf'
上一篇:函数计算 2.0 重磅发布,Serverless Computing 开启新篇章


下一篇:3分钟短文:可能是Laravel模板最直白的用法了,没有之一