Redis 的安装和基本操作
Redis 介绍
Redis是一种主要基于内存存储和运行的,能快速响应的键值数据库产品。
Redis数据库产品用ANSI C语言编写而成,是开源的,遵守BSD协议。
在读写响应性能上,传统关系型数据库<MongoDB等基于磁盘读写的NOSQL数据库<Redis数据库。
在应用业务范围上,传统的关系型数据库应用业务范围最广,MongoDB主要应用于基于互联网的Web业务应用。Redis只能解决Internet应用环境下的特定应用业务。
总之,Redis由于是基于内存读写,所以读写速度在上面三者中是最快的(单服务器每秒插入处理速度可以超过八万条,这在高并发处理方面很有利),另外,Redis的应用范围相对较窄,但是互联网业务环境下很多大型网站需要它。
一、Redis的安装(Windows)
Redis可以在Windows,Linux,Ubuntu等系统下安装,在这里我是在Windows(64)位系统下安装的Redis-x64-3.0.504版本。 安装包在如下链接里:Redis提取码i0x1
下载后把安装包复制到自定义盘符的新建redis文件夹中,如,D:\redis。并将压缩包解压到当前文件夹。
首先,打开cmd命令行,用cd命令进入到D:\redis,输入 redis-server.exe redis.windows.conf启动服务器,会看到如下结果:
此时不要关闭这个cmd窗口,否则将无法访问服务器端,再另外打开一个cmd窗口
进入到D:/redis,运行redis-cli.exe -h 127.0.0.1 -p 6379表示连接此服务,端口 6379
下面是进行一些基本操作进行测试
设置键值对:set a A
取出键值对:get a
结果显示如下图:
能够成功运行,表示安装成功。
二、Redis的数据类型
redis支持五种数据类型,截至2017年六月,Redis官网提供的数据结构类型已经达到八种。
1.字符串(String)
字符串是redis 最简单的数据结构。
字符串内容是二进制安全的(二进制安全是指,在传输数据时,保证二进制数据的信息安全,也就是不被篡改、破译等,如果被攻击,能够及时检测出来。)也就是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
2.列表(List)
列表是由若干插入顺序排序的字符串元素组成的集合。
按照链表的插入顺序排序,读写操作时只能从其两头开始。(由于采用链表技术实现,所以在链表头插入新字符串速度非常快)。
3.集合(set)
由不重复且无序的字符串元素构成的一个整体。(和列表加以区分)
4.散列表(Hash)
散列表可以存储多个键值对的映射,是无序的一种数据集合。
键中间可以采用类似:的隔离符号。键必须为字符串型内容,值可以是字符串型也可以是数字型。
Hash特别适用于存储一个对象。
5.有序集合(Sorted Set)
有序集合和散列一样都是由键值对构成的数据集合。
但是有序集合根据值进行自动排序,而散列值表不排序。有序集合可以对值进行直接操作,而散列通过键查找来获取值。
有序集合的键字符串必须唯一,值可以重复,值必须可以解析为浮点数。
6.位图(Bitmap)
7.HyperL ogLog
三、Redis 命令
上面介绍了redis数据库基于键值基本存储原理的基础上,一些经过细化分类的数据类型,下面关于是redis命令的一些比较基本的操作。
以字符串命令为例
1)基本字符串操作命令包括设置,获取,删除,取长度等。
Set
set key value #设置指定key的值
127.0.0.1:6379> set name "yinyuke" #设置键名为name,值为yinyuke的字符串
OK
127.0.0.1:6379>
127.0.0.1:6379> set book "NOSQL" EX 1 #设置一秒后book过期
OK
127.0.0.1:6379> set Cname "ᅭ�ᅮ↑₩" #中文出现字符编码不匹配问题
OK
127.0.0.1:6379> get Cname
"\xd2\xf3\xd3\xea\xe7\xe6"
MSet命令
127.0.0.1:6379> MSet book1 "math" book2 "English" #对多个键设置对应的值
OK
MSetNX
127.0.0.1:6379> MSetNX book1ID 1 book2ID 2
(integer) 1
127.0.0.1:6379> MSetNX book3ID 3 book1ID 1
(integer) 0 #出现重复设值,返回0 ,整条命令不操作
Get
get key #返回键对应的值,若值不存在,则返回nil
127.0.0.1:6379> get book1
"math"
127.0.0.1:6379> get book3
(nil)
MGet
127.0.0.1:6379> MGet book1 book2
1) "math"
2) "English"
127.0.0.1:6379> MGet book1 book2 book3
1) "math"
2) "English"
3) (nil)
Del
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> del book1 book2 #可以同时删除多个
(integer) 2
127.0.0.1:6379> Mget book1 book2
1) (nil)
2) (nil)
2)修改字符串操作命令包括Append,GetRange,GetSet,SetRange等
StrLen
StrLen key
127.0.0.1:6379> set name "Siri"
OK
127.0.0.1:6379> StrLen name
(integer) 4 #返回字节数,一个字母一个字节如果为汉字,则一个汉字两个字节
Append
Append key value
127.0.0.1:6379> append student "a"
(integer) 1
127.0.0.1:6379> append student "b"
(integer) 2
127.0.0.1:6379> get student
"ab"
GetRange
127.0.0.1:6379> getrange sentence 1 6 #正向从0 开始数
"hat is"
127.0.0.1:6379> get range -4 -1 #从后往前进行字符串截取
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379>
GetSet
127.0.0.1:6379> getset student1 "c"
(nil) #指定的键不存在,返回nil
127.0.0.1:6379> getset student a
"ab" #指定的键存在,设置新值后返回旧值
其他的命令操作因为过于繁杂,就先不在这里演示,详细可以去看参考书籍。
四、python连接Redis
首先在连接之前,需要先在Python中安装redis模块
在命令行中输入 pip3 install redis 即可
但是在执行中我的cmd却出现了以下错误,导致python代码无法运行
WARNING: You are using pip version 19.3.1; however, version 20.0.2 is available.
在网上搜索以后,发现应该是pip版本的问题,我找到了如下解决方法:
在cmd命令行中输入如下命令:
再进行上述操作即可。
另外,代码在运行时,还会出现以下错误:
ERR Client sent AUTH, but no password is set
是因为
Redis服务器没有设置密码,但客户端向其发送了AUTH(authentication,身份验证)请求。
这时,需要进行密码设置,具体操作如下:
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> CONFIG set requirepass "123456"
OK
127.0.0.1:6379> AUTH 123456
OK
127.0.0.1:6379> set name yin
OK
此时,再去运行代码,就能正确运行了
python连接redis并进行一些基本操作的代码如下:
import redis
HOST = 'localhost'PORT = '6379'PASSWORD = '123456'
r_db = redis.Redis(host=HOST, port=PORT, password=PASSWORD, decode_responses=True, # decode_responses=True,写入value中为str类型,否则为字节型 db='2') # 默认不写是db0
r_db.set('name','yuke')
# set的几个参数:'''前面两个,一个key,一个valueex,过期时间(秒)px,过期时间(毫秒)nx,如果设置为True,则只有name不存在时,当前set操作才执行xx,如果设置为True,则只有name存在时,当前set操作才执行'''
print(r_db['name'])print(r_db.get('name'))print(type(r_db.get('name')))
输出结果为:
yuke
yuke
<class 'str'>
参考书籍《NOSQL数据库入门与实践(基于MongoDB、Redis)》(刘瑜 王胜松著)
Redis 的安装和基本操作相关推荐
- Redis的安装以及基本操作简介
所有与大数据相关的服务都必须在linux上运行,redis提供了linux和windows的版本,但是为了系统更加稳定,推荐使用linux作为服务器. Linux版redis的安装,这里选择cento ...
- node.js中对 redis 的安装和基本操作
一.win下安装redis https://github.com/MicrosoftArchive/redis/releases 下载Redis-x64-3.2.100.zip,然后解压,放到自定义目 ...
- redis cli 删除key 模糊_Web基础配置篇(六): Redis的安装配置及基本操作
Web基础配置篇(六): Redis的安装配置及基本操作 一.概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的A ...
- Docker安装和基本操作
离线安装Docker系统 第一步:下载docker离线包 https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.t ...
- 【Redis】window(win11)系统redis的安装使用最新教程——图文介绍
redis官方推荐redis在linux系统下使用,但在平常的开发学习当中,在window下更好测试,今天就给出window下的安装方法! 一.下载redis安装程序 redis官网的只支持linux ...
- Linux下redis的安装(适用centos)
转自:https://www.cnblogs.com/_popc/p/3684835.html 第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安 ...
- Redis 入门安装(Linux)
Redis 入门安装(Linux) 备注:该案例讲解基于CentOS6.5.Reids3.2.8 Redis 官网 中文地址:http://www.redis.cn/ 英文地址:https://red ...
- Redis初学:1(NoSQL的简介和Redis的安装)
什么是NoSQL NoSQL数据库意即:Not Only SQL 不仅仅是SQL,它区别于传统的关系型数据库,储存方式按照的是key-value的形式存储数据,这个我们可以联想到我们以前学过的Hash ...
- Linux下redis的安装
原文出处:http://www.cnblogs.com/_popc/p/3684835.html 第一步:redis的安装 希望将redis安装到此目录 1 /usr/local/redis 希望将安 ...
最新文章
- CodeProject 文章概览:ASP.NET 模板相关内容
- tensorflow 线性回归 iris
- Linux正确的关机方式
- pyqt5项目(计算器)
- 微信团队分享:微信移动端的全文检索多音字问题解决方案
- 2020-2021年中国购物中心消费者洞察报告
- 老年机按键串号_为什么老人机依然很多人在用?
- heartbeat+iscsi+mysql实现双机高可用
- useradd: cannot open /etc/passwd解决办法记录
- python pow函数用法_Python代码中pow()函数具有哪些功能呢?
- 静态文件之static+url控制系统(萌新笔记)
- java案例代码8--最终要随机输出一组出来做为排名
- php while循环语句格式,PHP while 循环
- 典型关联分析(CCA)原理总结
- 一张图掌握产品经理绩效考核表实例
- 抖音收购musical.ly后,最难过的为什么是快手?
- T10 微信公众号如何获得清晰头像?
- 精囊妙计 -- 策略模式(Strategy Pattern) 介绍 优缺点 使用场景案例及代码演示
- unity绘制管道_在Unity里写一个纯手动的渲染管线(一)
- 【DIRECTX状态详解】
热门文章
- python发送excel文件_如何在Python中使用Excel文件(xlsx)附件发送电子邮件
- java毕业设计迅腾游戏交流网站Mybatis+系统+数据库+调试部署
- html文本环绕’,css如何使文字环绕显示
- python 波动率锥_50ETF波动率的统计属性及其对波动率交易策略的启示
- 语音合成论文优选:语音合成综述(2021)
- swiper插件在ie浏览器无反应,解决办法
- 极光笔记 | 用 WhatsApp 进行海外用户运营的 N 个理由
- Ikea与Ori Living连手将打造机器人家具系统
- HNU实验五05阿迪看医生
- eclipse插件安装方法备忘