存储系统数据缓存一般会使用三个模块:Mongodb,redis,memcache。其中memcache是轻量级缓存,只能将数据保存到内存中,redis可以配置数据保存在内存还是硬盘。
其主要用途有:不同应用(语言)中共享数据
CentOS安装Redis安装
yum install epel-release
yum install redis
开启服务:
systemctl start redis
设置密码:
编辑文件:/etc/redis.conf
#requirepass foobared去掉注释,foobared改为自己的密码
requirepass newpasswd #这句表示该密码为newpasswd
保存并重启redis服务
设置密码后的命令行登入方式:redis-cli -h 127.0.0.1 -p 6379 -a newpasswd
设置远程端可访问:
因为redis服务默认不提供远程 *** 作
编辑文件:/etc/redis.conf
将bind 127.0.0.1 改为 bind 0.0.0.0
保存并重启redis服务
设置防火墙开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
重启防火墙
systemctl restart firewalld命令行基本 *** 作 *** 作
连接
redis-cli
通过键值对设置值
set key value [EX seconds] [PX milliseconds] [NX|XX]
其中ex表示保存的秒数,px表示毫秒数,nx表示key不存在时才 *** 作,xx表示key存在时才 *** 作
set keyx valuex
设置值且保存5秒
set keyx1 valuex1 ex 5
一次性设置多个
mset key1 value1 key2 value2
设置新值并返回原值
getset key1 value1111
字符串切片,如"value1"经过下面结果为:"val"
getrange key1 0 2
退出
exit
通过键值对获取值
get keyx
查看所有的键
keys *
查看带有e字符的所有key
keys *e*
一次性获取多个
mget key1 key2
通过键值对删除值
del key [key ...]
判断键是否存在,返回0或1
exists key1
重命名
rename key1 key2
跳转到另一个空间(db)
总共有[0,15]个,默认为0
select 1
移动键值内容
move key db
自增自减
自增:
incr keycunx #执行一次增加一
自减
decr keycunx 执行一次减去一
二进制位 *** 作:
如果把设置值的offset匹配成用户ID,则可以实现高效的用户登入判断,设置1为登入,0为非登入
设置值:
setbit key offset value 设置二进制offset位的值为value
setbit dongbit 2 1setbit dongbit 1000 1
取出值为1的位个数:
bitcount dongbit 输出2
获取二进制第几位的值:
getbit dongbit 10 输出0getbit dongbit 2 输出1
Hash *** 作:
设置数据
hset key fIEld value 其中key总键,fIEld为子键,value为子键的值
hset user name dongxiaodonghset user passwd pdongdongdong
获取到所有数据:
hgetall userhkeys userhvals user
获取到指定数据:
hget user passwd
批量设置:
hmset user1 name dong1 passwd pdong111
判断子键是否存在,存在返回1,否则为0
hexists user1 passwd
列表 *** 作:
设置
rpush key value [value ...] #一个key可以保持多个value,先入先出,如果需要先入后出则使用rpush
rpush Listdong dong1 dong2 dong3
取值:
lrange key start stop 取key的值需要确定起始和结束位置
lrange Listdong 0 -1 取所有lrange Listdong 1 1 确定某个
集合 *** 作(值不可重复):
设置
sadd aggdong dong1 dong2 33 dong1
取值
smembers aggdong
获取个值数
scard aggdongPython基本 *** 作
安装模块
pip3 install redis
简单的连接:
1 连接方法一: 2 每次 *** 作都是一个连接,如get、set等,一个就是一个网络连接,所以不可取 3 conn=redis.Redis(host="192.168.1.195",port=6379,password="rpdong") 4 5 连接方法二(连接池) 6 poolx=redis.ConnectionPool(host="192.168.1.195",password=rpdong") 7 conn=redis.Redis(connection_pool=poolx) 8 9 设置数据10 conn.set(keyxvaluexx11 取出数据12 print(conn.get("))
键值对 *** 作补充:
只有键本身存在时才更改数据值和最长保留时间为10秒
设置数据,conn.set(发布命令行发布:
参数为:publish 主题 内容
publish dongtop dongtototoPython发布:
import redis 2 连接池 4 poolx=redis.ConnectionPool(host= 5 conn=redis.Redis(connection_pool= 6 7 发布消息,参数(主题,内容) 8 conn.publish(dongtopdongxiaodongtext 9 conn.publish(dongtop2dongxiaodongtext22210 print(------ 发送完成 --------")订阅:
7 8 pub=conn.pubsub() 打开接收 9 pub.subscribe(") 设置接收主题10 pub.subscribe(11 -------- 等待接收 ---------13 14 while True:15 msgx=pub.parse_response() 准备接收,如果无数据则阻塞16 '''17 第一次会输出订阅成功消息:18 收到的数据为: [b'subscribe',b'dongtop',1] 19 20 #输出:21 收到的数据为: [b'message',b'dongxiaodongtext']22 23 24 收到的数据为:发布端发布消息,参数(主题,文件内容)conn.publish(南沙客运港.mp4rb).read())")接收端:
msgx =pub.parse_response() 去掉第一次订阅成功的消息,msgx) True: msgx =pub.parse_response() 准备接收,如果无数据则阻塞 得到文件数据并写入文件 open(客运港.mp4wb").write(msgx[2]) ----* 接收完成 *----")总结以上是内存溢出为你收集整理的Python存储系统(Redis)全部内容,希望文章能够帮你解决Python存储系统(Redis)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)