Redis是一种主要基于内存存储和运行的,能快速响应的键值数据库产品。 Redis可以在Windows,Linux,Ubuntu等系统下安装,在这里我是在Windows(64)位系统下安装的Redis-x64-3.0.504版本。 安装包在如下链接里:Redis提取码i0x1 下载后把安装包复制到自定义盘符的新建redis文件夹中,如,D:redis。并将压缩包解压到当前文件夹。 redis支持五种数据类型,截至2017年六月,Redis官网提供的数据结构类型已经达到八种。 字符串是redis 最简单的数据结构。 列表是由若干插入顺序排序的字符串元素组成的集合。 由不重复且无序的字符串元素构成的一个整体。(和列表加以区分) 散列表可以存储多个键值对的映射,是无序的一种数据集合。 有序集合和散列一样都是由键值对构成的数据集合。 上面介绍了redis数据库基于键值基本存储原理的基础上,一些经过细化分类的数据类型,下面关于是redis命令的一些比较基本的操作。 MSet命令 MSetNX Get MGet Del 2)修改字符串操作命令包括Append,GetRange,GetSet,SetRange等 Append GetRange GetSet 其他的命令操作因为过于繁杂,就先不在这里演示,详细可以去看参考书籍。 首先在连接之前,需要先在Python中安装redis模块 此时,再去运行代码,就能正确运行了 输出结果为: 参考书籍《NOSQL数据库入门与实践(基于MongoDB、Redis)》(刘瑜 王胜松著)
Redis 介绍
Redis数据库产品用ANSI C语言编写而成,是开源的,遵守BSD协议。
在读写响应性能上,传统关系型数据库<MongoDB等基于磁盘读写的NOSQL数据库<Redis数据库。
在应用业务范围上,传统的关系型数据库应用业务范围最广,MongoDB主要应用于基于互联网的Web业务应用。Redis只能解决Internet应用环境下的特定应用业务。
总之,Redis由于是基于内存读写,所以读写速度在上面三者中是最快的(单服务器每秒插入处理速度可以超过八万条,这在高并发处理方面很有利),另外,Redis的应用范围相对较窄,但是互联网业务环境下很多大型网站需要它。一、Redis的安装(Windows)
首先,打开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的数据类型
1.字符串(String)
字符串内容是二进制安全的(二进制安全是指,在传输数据时,保证二进制数据的信息安全,也就是不被篡改、破译等,如果被攻击,能够及时检测出来。)也就是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。2.列表(List)
按照链表的插入顺序排序,读写操作时只能从其两头开始。(由于采用链表技术实现,所以在链表头插入新字符串速度非常快)。3.集合(set)
4.散列表(Hash)
键中间可以采用类似:的隔离符号。键必须为字符串型内容,值可以是字符串型也可以是数字型。
Hash特别适用于存储一个对象。5.有序集合(Sorted Set)
但是有序集合根据值进行自动排序,而散列值表不排序。有序集合可以对值进行直接操作,而散列通过键查找来获取值。
有序集合的键字符串必须唯一,值可以重复,值必须可以解析为浮点数。6.位图(Bitmap)
7.HyperL ogLog
三、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 "xd2xf3xd3xeaxe7xe6"
127.0.0.1:6379> MSet book1 "math" book2 "English" #对多个键设置对应的值 OK
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 key #返回键对应的值,若值不存在,则返回nil 127.0.0.1:6379> get book1 "math" 127.0.0.1:6379> get book3 (nil)
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)
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)
StrLen
StrLen key127.0.0.1:6379> set name "Siri" OK 127.0.0.1:6379> StrLen name (integer) 4 #返回字节数,一个字母一个字节如果为汉字,则一个汉字两个字节
Append key value127.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"
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>
127.0.0.1:6379> getset student1 "c" (nil) #指定的键不存在,返回nil 127.0.0.1:6379> getset student a "ab" #指定的键存在,设置新值后返回旧值
四、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'>
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算