redis是基于内存型的NoSQL 非关系型数据库,本内容只针对有基础的小伙伴, 因为楼主不会做更多的解释,而是记录更多的技术接口使用,毕竟楼主不是做教学的,没有教学经验。 关于redis的介绍请自行搜索查阅。
使用redis数据库首先先去安装, 楼主这里使用的是docker 搭建的Redis, 关于docker 的知识点请自行查阅, 因为讲起来三天三夜也讲不完, 如果不想使用docker, 也可以一步一步的去搭建Redis数据库, 使用docker一个命令就搭建好了,简单速度快捷方便!
楼主已经将docker搭建的 Redis服务启动起来了。
由于楼主是学python的, 本教程中会有大量的python 代码出现。
链接Redis:
使用 redis-cli 即可实现客户端与服务端的链接,
测试redis 客户端与服务端的链接:
使用 PING 命令, 则可以测试是否与redis 成功链接, 但需要注意的是, 如果ping 后面没有跟任何参数, 则会返回 PONG, 如果ping后面跟了参数, redis服务则会将传递的参数给返回:
这种情况下,表明客户端已经成功链接上了 redis服务,
如果链接有问题,则会报错:
Python 测试链接Redis:
from redis import Redis
redis_cli = Redis()
if redis_cli.ping():
print("Redis 服务链接成功!")
else:
print("Redis 服务链接失败!")
配置服务器:
这种配置只是针对于docker 以外的redis服务搭建方式, 不是使用docker 搭建的, 但是也同样十分重要!
方式一:
启动Redis服务器的时候给定配置选项作为参数,格式为:
$ redis-server --OPTION1 [value1 value2 ...] --OPTION2 [value1 value2 ...] [...]
例如,Redis服务器默认使用6379作为端口号,但如果你想使用10086而不是6379作为端口号,那么可以在启动Redis服务器时通过设定port可选项来指定想要的端口号:
$ redis-server --port 10086
方式二:
在启动Redis服务器的时候为其提供配置文件,并将想要修改的配置选项写在配置文件中:
$ redis-server /path/to/your/file
例如,为了将Redis服务器的端口号改为12345,我们可以在当前文件夹中创建配置文件myredis.conf,并在文件中写入 : port 12345 然后启动redis服务的时候向其提供该配置文件。
Redis 数据类型:
字符串:
字符串(string)键是Redis最基本的键值对类型,这种类型的键值对会在数据库中把单独的一个键和单独的一个值关联起来,被关联的键和值既可以是普通的文字数据,也可以是图片、视频、音频、压缩文件等更为复杂的二进制数据。
Redis为字符串键提供了一系列操作命令,通过使用这些命令,用户可以:
●为字符串键设置值。
●获取字符串键的值。
●在获取旧值的同时为字符串键设置新值。
●同时为多个字符串键设置值,或者同时获取多个字符串键的值。
●获取字符串值的长度。
●获取字符串值指定索引范围内的内容,或者对字符串值指定索引范围内的内容进行修改。
●将一些内容追加到字符串值的末尾。
●对字符串键存储的整数值或者浮点数值执行加法操作或减法操作。
SET 命令为字符串键设置值:
我们可以使用 set 命令来为一个字符串的键 设置一个值 :
set key value
例如:
可以发现, 设置成功后, 则会返回 OK
改变覆盖规则:
默认情况下, 已有的键值如果再次被复制,原有的值则会被覆盖掉, 例如:set name "张三" 这个命令设置了两次, 第二次为: set name "wangwu" 那么, 第二次设置的值会覆盖掉上次设置的值, 这个时候,在redis中存储的name 的值则为:wangwu.
从Redis 2.6.12版本开始,用户可以通过向SET命令提供可选的NX选项或者XX选项来指示SET命令是否要覆盖一个已经存在的值:
SET key value [NX|XX]
如果用户在执行SET命令时给定了NX选项,那么SET命令只会在键没有值的情况下执行设置操作,并返回OK表示设置成功;如果键已经存在,那么SET命令将放弃执行设置操作,并返回空值nil表示设置失败。
如果用户在执行SET命令时给定了XX选项,那么SET命令只会在键已经有值的情况下执行设置操作,并返回OK表示设置成功;如果给定的键并没有值,那么SET命令将放弃执行设置操作,并返回空值表示设置失败。
GET 命令获取字符串的值:
可以使用GET命令从数据库中获取指定字符串键的值:
get key
GET命令接受一个字符串键作为参数,然后返回与该键相关联的值。
我们可以使用 keys * 查看redis中存储的所有键:
由此可见,这里存储了 age, name 两个键,使用get 命令则可以获取它们的值:
可以发现, 如果尝试去获取一个 不存在的键:address, 则会返回 nil。
GETSET 命令获取旧值并设置新值:
GETSET命令就像GET命令和SET命令的组合版本,GETSET首先获取字符串键目前已有的值,接着为键设置新值,最后把之前获取到的旧值返回给用户:
GETSET key new_value
如果使用GETSET 命令操作的是一个不存在的键, 那么会先将 nil 作为旧值返回,然后再设置一个新的值: