当前位置:网站首页>(1) Redis: Key-Value based storage system
(1) Redis: Key-Value based storage system
2022-08-02 02:45:00 【zhangts20】
1. Redis 介绍与安装
1.1 Redis 基本介绍
Redis 是一种基于 Key-Value 的存储系统,可用作数据库、Caching and message middleware, etc.仓库地址:https://github.com/redis/redis
Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine.
在 Redis 内部,Data is stored in binary form,所以 Redis Many data structures are supported,如字符串、Lists and sets, etc.
1.2 Redis 安装(Ubuntu)
下载地址: https://github.com/redis/redis/releases,After the download is complete, unzip it locally.The binary startup files are all in the installation directory src 目录,redis-server Used to start the server、redis-cli 用于客户端.服务端的启动:
$ ./redis-server
572504:C 31 Jul 2022 08:53:47.438 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
572504:C 31 Jul 2022 08:53:47.438 # Redis version=6.2.7, bits=64, commit=00000000, modified=0, pid=572504, just started
572504:C 31 Jul 2022 08:53:47.438 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
572504:M 31 Jul 2022 08:53:47.440 * Increased maximum number of open files to 10032 (it was originally set to 1024).
572504:M 31 Jul 2022 08:53:47.440 * monotonic clock: POSIX clock_gettime
572504:M 31 Jul 2022 08:53:47.441 # A key '__redis__compare_helper' was added to Lua globals which is not on the globals allow list nor listed on the deny list.
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.7 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 572504
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
572504:M 31 Jul 2022 08:53:47.441 # Server initialized
572504:M 31 Jul 2022 08:53:47.441 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
572504:M 31 Jul 2022 08:53:47.446 * Loading RDB produced by version 6.2.7
572504:M 31 Jul 2022 08:53:47.446 * RDB age 143485 seconds
572504:M 31 Jul 2022 08:53:47.446 * RDB memory usage when created 0.78 Mb
572504:M 31 Jul 2022 08:53:47.446 # Done loading RDB, keys loaded: 7, keys expired: 0.
572504:M 31 Jul 2022 08:53:47.446 * DB loaded from disk: 0.005 seconds
572504:M 31 Jul 2022 08:53:47.446 * Ready to accept connections
客户端的启动:
$ ./redis-cli
127.0.0.1:6379>
2. 使用
启动 Redis after the server,We can match at the code end Redis 进行操作.It can be seen from the startup interface of the client,我们在操作 Redis 时需指定 IP 地址和端口号,Also specify the database object for the operation:
import redis
r = redis.StrictRedis.from_url(url='redis://127.0.0.1:6379/0')
建立连接后,可使用 ping Check out the build.Returns if established successfully PONG,Otherwise, return an error message:
res = r.ping()
字符串是 Redis Commonly manipulated data types,get 和 set are methods for manipulating strings.
r.set(name='name', value='zhang')
print(r.get(name='name')) # b'zhang'
输出数据类型为 bytes 的二进制形式.同时,方法 append Used to add content to the end of a string,如果对应 name If it does not exist, create and initialize it:
r.append(key='name', value='wang')
print(r.get(name='name')) # b'zhangwang'
r.append(key='age', value=20)
print(r.get(name='age')) # b'20'
After adding the relevant data on the code side,我们也可在 server-cli View the operation result.首先使用 select 命令切换数据库,The database name we used earlier was 0.
127.0.0.1:6379> select 0
OK
然后,使用 keys 命令查看所有的 key 值:
127.0.0.1:6379> keys *
1) "name"
2) "age"
The result shows the two fields we just added.此时,可以使用 type Check the type of the corresponding field、Take the corresponding value, etc.
127.0.0.1:6379> type name
string
127.0.0.1:6379> get name
"zhangwang"
Redis The storage of default fields is persistent,可以通过 expire The method sets the valid time of the field,单位为秒.
r.expire(name='age', time=5) # 设置字段 age Expires after five seconds
time.sleep(5)
print(r.get(name='age')) # None
3. 总结
- 本文总结了 Redis 的基本内容,目前只用到了 Redis 的基本功能,Subsequent additions will be made based on usage.
- Redis Other uses of the command can refer to the website https://www.runoob.com/redis/redis-commands.html.
边栏推荐
猜你喜欢

网络层解析——IP协议、地址管理、路由选择

项目场景 with ERRTYPE = cudaError CUDA failure 999 unknown error

因为WiFi原因navicat 无法连接数据库Mysql

最大层内元素和

Nanoprobes纳米探针丨Nanogold偶联物的特点和应用

NAS和私有云盘的区别?1篇文章说清楚
![[Unity entry plan] 2D Game Kit: A preliminary understanding of the composition of 2D games](/img/8a/07ca69c6dcc22757156cb615e241f8.png)
[Unity entry plan] 2D Game Kit: A preliminary understanding of the composition of 2D games

qt点云配准软件

Nacos源码分析专题(一)-环境准备

面对职场“毕业”,PM&PMO应该如何从容的应对?如何跳槽能够大幅度升职加薪?
随机推荐
svm.SVC应用实践1--乳腺癌检测
JVM调优实战
nacos startup error, the database has been configured, stand-alone startup
Nanoprobes免疫测定丨FluoroNanogold试剂免疫染色方案
很有意思的经历,很有意思的项目--文件夹对比工具
Safety (2)
1688以图搜货
递归检查配置项是否更变并替换
最大层内元素和
* 比较版本号
Talking about the "horizontal, vertical and vertical" development trend of domestic ERP
架构:分布式任务调度系统(SIA-Task)简介
mysql 查看死锁
面对职场“毕业”,PM&PMO应该如何从容的应对?如何跳槽能够大幅度升职加薪?
2022.8.1-----leetcode.1374
局部敏感哈希:如何在常数时间内搜索Embedding最近邻
Chopper webshell feature analysis
【LeetCode】104.二叉树的最大深度
淘宝详情.
Nacos源码分析专题(二)-服务注册