目录:
一、Redis服务器
二、Redis-cli访问
三、Python-Redis访问
Linux版本下载地址:
https://redis.io/download
Windows版本下载地址:
https://github.com/microsoftarchive/redis/releases
Redis内存高速缓存数据库,基于key-value存储,同时又支持磁盘存储和分布式,在比较了Memcached和MongoDB之后,笔者还是选择了它作为本次开发工作的NoSql。
Redis服务器
首先是开启服务端,顺便一提,Redis3.0开始支持分布式。
官方提供了安装包和绿色版,前者可自动添加至环境变量。
绿色版直接运行redis-server.exe即可,已安装的就可以命令行直接调喽,当然也可以通过redis-server.exe *.conf
指定自定义配置文件,不然使用默认配置。
在这里我们顺便说下Redis访问密码设置。
在conf文件中加入一行requirepass password
即可。
如果未认证连接,将会收到(error) NOAUTH Authentication required.
的error,可使用auth “password”
命令完成认证。
redis-cli访问
客户端连接使用解压目录下的redis-cli.exe
进行连接。
redis-cli.exe -h host -p port -a password
首先,我们要知道Redis 本身支持16个数据库(0~15),通过 数据库id 设置,默认为0,这一点我们通过Redis Manager也可以查看。
本文不对针对Redis支持的数据类型展开讲解,我们只来实现一个key-value小实例,将姓名存储到第二个数据库中,保留10分钟即可。
大家都知道最基础的set方法,它的作用是存储数据到缓存中,并制定过期时间和当Key存在时是否覆盖。
set key value [EX seconds] [PX milliseconds] [NX|XX]
其中:
EX 即数据过期时间|单位为秒,PX 即数据过期时间|单位为毫秒。
NX即只有当key不存在是才进行set,XX即只有当key已经存在时才进行set。
如果默认只用key-value,过期时间不限,相同key的数据会被覆盖。
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set name rabbit EX 600
OK
127.0.0.1:6379[1]> get name
"rabbit"
我们可以看到数据已经成功存储到redis,并可以使用get方法进行数据获取。
但值得一提的是,无论你设置了多久的过期时间,终究还是在缓存中,当redis重启后或服务器意外断电等,缓存中的数据将全部丢失,如果使用redis又偶尔会有持久性存储需求,记得使用save方法,当然了,设置了过期时间的数据即使save也会被按时清除的。
Python-Redis访问
python对redis的操作可借助第三方库StricRedis和Redis来实现,按照官方建议,我们这里选择StricRedis,还有一个原因就是他更贴近于原生的rediscli操作。
我们通过配置连接池的方式进行Redis访问,避免频繁的redis连接创建和释放的目的, 从而提保证其性能。
其次值得一提的是为了保证线程安全,无论是StricRedis还是Redis库都不支持select数据库切换,所以在连接配置中便通过db
参数指定了数据库,同样默认为db0。
from redis import StrictRedis,ConnectionPool
pool = ConnectionPool(host='127.0.0.1', port=6379, db=2, password='123456')
r = StrictRedis(connection_pool=pool)
r.set('name', 'rabbitmask')
print(r.get('name'))
#输出
b'rabbitmask'
网友评论