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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

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 
[ 12681 16  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
[ 12681 16  Oct  00 : 06 : 52.967  # You requested maxclients of  10000  requiring at least  10032  max file descriptors.
[ 12681 16  Oct  00 : 06 : 52.968  # Redis can't  set  maximum open files to  10032  because of OS error: Operation not permitted.
[ 12681 16  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 / 0 64  bit
   .-`` .-```.  ```\/    _.,_  '' -._                                   
  (    '      ,       .-`  | `,    )     Running  in  stand alone mode
  |`-._`-...-` __...-.``-._| '` _.-' |     Port:  6379
  |    `-._   `._    /     _.-'    |     PID:  12681
   `-._    `-._  `-./  _.- '    _.-'                                   
  |`-._`-._    `-.__.- '    _.-' _.-'|                                  
  |    `-._`-._        _.- '_.-'     |           http: //redis.io        
   `-._    `-._`-.__.- '_.-'     _.-'                                   
  |`-._`-._    `-.__.- '    _.-' _.-'|                                  
  |    `-._`-._        _.- '_.-'     |                                  
   `-._    `-._`-.__.- '_.-'     _.-'                                   
       `-._    `-.__.- '    _.-'                                       
           `-._        _.-'                                           
               `-.__.-'                                               
 
[ 12681 16  Oct  00 : 06 : 52.974  # Server started, Redis version  2.8 . 9
[ 12681 16  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.
[ 12681 16  Oct  00 : 06 : 52.976  * DB loaded from disk:  0.002  seconds
[ 12681 16  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 : 6379 set  name xpleaf
OK
 
#获得key对应的value
127.0 . 0.1 : 6379 get  name
"xpleaf"
 
#创建有时间的key-value
127.0 . 0.1 : 6379 set  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'
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
存储 NoSQL Redis
在Python Web开发过程中,为什么Redis运行速度快
【5月更文挑战第15天】Redis在Python Web开发中运行速度快,原因包括:1) 丰富数据类型满足多样化需求;2) 简单数据模型提升查询效率;3) 单线程模型结合非阻塞I/O实现高效处理;4) 持久化机制保证数据安全;5) 二进制协议与管道技术优化网络通信。这些因素共同确保Redis能处理大量请求并保持高性能。
72 1
|
6月前
|
存储 缓存 NoSQL
在Python Web开发过程中:数据库与缓存,Redis在Web开发中的常见应用场景有哪些?
Redis在Python Web开发中常用于缓存、会话管理、分布式锁、排行榜、消息队列和实时分析。作为内存数据存储,它提供高效的数据结构(如字符串、哈希、列表、集合、有序集合),支持会话存储、互斥操作、计数与排名、队列实现及实时数据处理。其高速性能和丰富功能使其成为多场景下的理想选择。
69 5
|
6月前
|
缓存 NoSQL Redis
Python缓存技术(Memcached、Redis)面试题解析
【4月更文挑战第18天】本文探讨了Python面试中关于Memcached和Redis的常见问题,包括两者的基础概念、特性对比、客户端使用、缓存策略及应用场景。同时,文章指出了易错点,如数据不一致和缓存淘汰策略,并提供了实战代码示例,帮助读者掌握这两款内存键值存储系统的使用和优化技巧。通过理解其核心特性和避免常见错误,可以提升在面试中的表现。
99 2
|
3月前
|
NoSQL Unix 网络安全
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
|
2月前
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
63 2
|
1月前
|
消息中间件 存储 NoSQL
python 使用redis实现支持优先级的消息队列详细说明和代码
python 使用redis实现支持优先级的消息队列详细说明和代码
36 0
|
3月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connection reset by peer"
【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connection reset by peer"
|
3月前
|
缓存 监控 NoSQL
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
|
3月前
|
NoSQL 网络安全 Redis
用python安装redis并设置服务自启
用python安装redis并设置服务自启
25 0
|
4月前
|
NoSQL Redis 数据库