首页 / REDIS / Redis的基本操作
Redis的基本操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis的基本操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2802字,纯文字阅读大概需要5分钟。
内容图文
一:初识Redis
1.什么是Redis
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
开源:早起版本2w3千行
基于键值对的存储系统:字典形式
多种数据结构:字符串,hash,列表,集合,有序集合
高性能,功能丰富
2.Redis的特性(8个)
①速度快
10W OPS(每秒操作数10W,实测6W左右)
数据存在内存中(内存读写速度高达40~50G/s)
c语言实现,单线程模型
②持久化
Redis有RDB和AOF机制
RDB其实就是把数据以快照的形式保存在磁盘上。什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
全量备份总是耗时的,有时候我们提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。
③多种数据结构
str:字符串类型 - 接口缓存
list:列表 - 分布式
hash:哈希(相当于Python中的字典) - 缓存
set:集合 - 去重
zset:有序的 - 排行榜
④支持多种编程语言
基于TCP通信协议,各大编程语言都支持
⑤功能丰富
发布订阅(消息) Lua脚本,事务(pipeline)等
⑥简单
源代码几万行,不依赖外部库
⑦主从复制
主服务器和从服务器,主服务器可以同步到从服务器中
⑧高可用和分布式
2.8版本以后使用redis-sentinel支持高可用
3.0版本以后支持分布式
3.Redis的典型使用场景
缓存系统: 使用最广泛的就是缓存
计数器: 网站访问量,转发量,评论数(文章转发,商品销量,单线程模型,不会出现并发问题)
消息队列: 发布订阅,阻塞队列实现(简单的分布式,blpop:阻塞队列,生产者消费者)
排行榜: 有序集合(阅读排行,点赞排行,推荐(销量高的,推荐))
社交网络: 很多特效跟社交网络匹配,粉丝数,关注数
实时系统: 垃圾邮件处理系统,布隆过滤器
4.Redis的安装
安装教程:https://www.cnblogs.com/xuexianqi/p/13340227.html
5.启动的3种方式
①最简启动
redis-server
ps -ef|grep redis #查看进程
netstat -antpl|grep redis #查看端口
redis-cli -h ip -p port ping #命令查看
②动态参数启动
redis-serve --port 6380 #启动,监听6380端口
③配置文件启动
配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字)
##通过redis-cli连接,输入config get * 可以获得默认配置
#在redis目录下创建config目录,copy一个redis.conf文件
#daemonize--》是否是守护进程启动(no|yes)
#port---》端口号
#logfile--》redis系统日志
#dir--》redis工作目录
二:再遇Redis
1.Python操作Redis - 普通连接
pip安装redis
pip3 install redis
导入
from redis import Redis
连接对象
conn=Redis(host=‘127.0.0.1‘, port=6379)
ret=conn.get(‘name‘)
print(ret)
2. Python操作Redis - 连接池
t_redis_pool.py
中
import redis
# pool必须是单例的
POOL = redis.ConnectionPool(host=‘127.0.0.1‘, port=6379,max_connections=100) # 造一个池子,最多能放100个连接
t_redis_conn.py
中
import redis
# 包内的py文件,如果想右键运行,导包的时候不能带点
from t_redis_pool import POOL # pycharm提示的错
r = redis.Redis(connection_pool=POOL) # 只要执行这一句话,就是从池中拿出一个连接
ret=r.get(‘name‘)
print(ret)
三:又见Redis
须知:在Redis中设置值,默认,不存在则创建,存在则修改
1.String操作
①set
set(self, name, value,ex=None, px=None, nx=False, xx=False, keepttl=False)
name:key的名字
value:key的值
ex:过期时间(秒)
px:过期时间(毫秒)
nx:如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果
xx:如果设置为True,则只有name存在时,当前set操作才执行,值存在才能修改,值不存在,不会设置新值
conn.set(‘height‘,‘180‘) # 基本使用
conn.set(‘height‘,‘180‘, 3) # 设置过期时间为3秒
conn.set(‘height1‘,‘190‘,nx=True) # 如果不存在‘height1‘,就创建并复制;如果存在,则无变化
conn.set(‘height‘,‘190‘,xx=True) # 把存在的‘height‘的值改成190;不存在,则无变化
setnx(key, value) 只有name不存在时,当前set操作才执行;值存在,则无效
相当于set(key,value,nx=True)
setex(key, value) 设置过期时间:秒
相当于set(key,value,time)
psetex(key, value) 设置过期时间:毫秒
相当于set(key,time,value,ex=True)
mset(*args, **kwargs) 批量设置
相当于set(key,value,ex=True)
conn.mset({‘name‘:‘xxq‘, ‘age‘:‘18‘})
②get
get(self, name)
name:key的名字
conn.get(‘age‘)
原文:https://www.cnblogs.com/xuexianqi/p/13377213.html
内容总结
以上是互联网集市为您收集整理的Redis的基本操作全部内容,希望文章能够帮你解决Redis的基本操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。