linux 常见的标识与Redis数据库详解

Linux 常见的标识

文件权限标识

Linux系统中,每个文件都有自己的权限标识,包括文件所有者、文件所属组和文件其他用户的权限。其中,文件的权限标识用10位二进制数来表示,分为三组,每组用三位表示。具体如下:

文件所有者权限:读取(r)、写入(w)、执行(x),用 rwx 表示,分别对应二进制数值 4、2、1;
文件所属组权限:读取(r)、写入(w)、执行(x),用 rwx 表示,分别对应二进制数值 4、2、1;
文件其他用户权限:读取(r)、写入(w)、执行(x),用 rwx 表示,分别对应二进制数值 4、2、1。

例如,-rwxr--r-- 这个权限标识表示该文件所有者有读取、写入和执行的权限,文件所属组和其他用户只有读取权限。它的二进制表示为 111101001(以3位为单位分别表示权限标识中的每一组),转换为十进制是 754。

文件类型标识

除了文件权限标识外,Linux系统还有文件类型标识。在命令 ls -l 中,文件类型标识在权限标识最前面,用一个字符表示不同的文件类型。

常见的文件类型标识有:

  • (杠):普通文件;
    d:目录;
    l:符号链接文件;
    c:字符设备文件;
    b:块设备文件;
    s:套接字文件;
    p:具名管道文件。

例如,-rwxr--r-- 这个权限标识对应的文件类型标识是 -,它表示该文件是一个普通文件。

Redis 数据库详解

Redis是一种开源的基于内存的key-value存储系统,通常被称为数据结构服务器,因为它支持各种数据结构,包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)等。

五种数据结构的常见操作

字符串

字符串是Redis中最基本的数据结构之一,常见的字符串操作包括:

  • SET key value:设置一个键值对;
  • GET key:获取一个键的值;
  • APPEND key value:将value追加到key现有的值之后;
  • INCR key:将一个键的值加1;
  • DECR key:将一个键的值减1。

示例:

$ redis-cli
127.0.0.1:6379> SET key1 "hello"
OK
127.0.0.1:6379> GET key1
"hello"
127.0.0.1:6379> APPEND key1 " world"
(integer) 11
127.0.0.1:6379> GET key1
"hello world"
127.0.0.1:6379> INCR key2
(integer) 1
127.0.0.1:6379> INCRBY key2 10
(integer) 11

哈希

哈希是一种由键值对组成的数据结构,常见的哈希操作包括:

  • HSET key field value:设置哈希key中的field字段的值为value;
  • HGET key field:获取哈希key中field字段的值;
  • HGETALL key:获取哈希key中所有的键值对;
  • HINCRBY key field increment:将哈希key中的field字段的值增加increment。

示例:

$ redis-cli
127.0.0.1:6379> HSET user1 name Tom
(integer) 1
127.0.0.1:6379> HSET user1 age 20
(integer) 1
127.0.0.1:6379> HGET user1 name
"Tom"
127.0.0.1:6379> HINCRBY user1 age 5
(integer) 25
127.0.0.1:6379> HGETALL user1
1) "name"
2) "Tom"
3) "age"
4) "25"

列表

列表是一种由多个元素组成的有序集合,常见的列表操作包括:

  • LPUSH key value:将一个或多个值插入到列表key的表头;
  • RPUSH key value:将一个或多个值插入到列表key的表尾;
  • LPOP key:弹出列表key的表头元素;
  • RPOP key:弹出列表key的表尾元素;
  • LRANGE key start stop:获取列表key中[start, stop]范围的元素。

示例:

$ redis-cli
127.0.0.1:6379> LPUSH list1 a b c
(integer) 3
127.0.0.1:6379> RPUSH list1 d e f
(integer) 6
127.0.0.1:6379> LRANGE list1 0 -1
1) "c"
2) "b"
3) "a"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> LPOP list1
"c"
127.0.0.1:6379> RPOP list1
"f"

集合

集合是一种由多个元素组成的无序集合,常见的集合操作包括:

  • SADD key value:将一个或多个值添加到集合key中;
  • SMEMBERS key:获取集合key中所有元素的列表;
  • SISMEMBER key value:检查value是否是集合key中的成员;
  • SCARD key:获取集合key的元素个数。

示例:

$ redis-cli
127.0.0.1:6379> SADD set1 a b c
(integer) 3
127.0.0.1:6379> SMEMBERS set1
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> SISMEMBER set1 d
(integer) 0
127.0.0.1:6379> SADD set2 b c d
(integer) 3
127.0.0.1:6379> SUNION set1 set2
1) "b"
2) "c"
3) "a"
4) "d"

有序集合

有序集合是一种由多个元素组成的有序集合,常见的有序集合操作包括:

  • ZADD key score member:将一个成员和对应的分数添加到有序集合key中;
  • ZRANGE key start stop [WITHSCORES]:获取有序集合key中排名在[start, stop]范围内的元素;
  • ZREVRANK key member:获取有序集合key中成员member的排名;
  • ZINCRBY key increment member:将有序集合key中成员member的分数增加increment。

示例:

$ redis-cli
127.0.0.1:6379> ZADD zset1 90 Mike
(integer) 1
127.0.0.1:6379> ZADD zset1 80 Tom
(integer) 1
127.0.0.1:6379> ZADD zset1 70 Jack
(integer) 1
127.0.0.1:6379> ZRANGE zset1 0 -1 WITHSCORES
1) "Jack"
2) "70"
3) "Tom"
4) "80"
5) "Mike"
6) "90"
127.0.0.1:6379> ZREVRANK zset1 Tom
(integer) 1
127.0.0.1:6379> ZINCRBY zset1 5 Tom
"85"

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux 常见的标识与Redis数据库详解 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Go打包二进制文件的实现

    Go打包二进制文件的实现 在Go语言中,可以使用go build命令将程序编译成二进制文件。默认情况下,编译后的二进制文件将会保存在当前目录下,其名称与当前目录的名称相同。同时,也可以通过一些参数来设置编译后二进制文件的名称和路径。 编译单个Go文件 我们可以通过以下命令来将单个Go文件进行编译: go build example.go 这将会在当前目录下生…

    database 2023年5月22日
    00
  • 数据库系列:MySQL慢查询分析和性能优化

    1 背景 我们的业务服务随着功能规模扩大,用户量扩增,流量的不断的增长,经常会遇到一个问题,就是数据存储服务响应变慢。导致数据库服务变慢的诱因很多,而RD最重要的工作之一就是找到问题并解决问题。下面以MySQL为例子,我们从几个角度分析可能产生原因,并讨论解决的方案。 2 定位慢查询的原因并优化 2.1 慢查询的分析 开启SlowLog,默认是关闭的,由参数…

    MySQL 2023年4月12日
    00
  • SpringBoot怎么整合Redis实现序列化存储Java对象

    今天小编给大家分享一下SpringBoot怎么整合Redis实现序列化存储Java对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 一、背景 1、思考 通过我们前面的学习,我们已经可以往 Redis 中存入字符串,那么我们要往 Redis 中…

    2023年4月10日
    00
  • Mysql中关于Incorrect string value的解决方案

    MySQL在插入数据时,如果字符集不匹配,会出现“Incorrect string value”的错误。这个错误通常发生在使用UTF-8字符集插入非UTF-8字符的时候,例如使用UTF-8的客户端插入中文、日文、韩文等非西方语言的字符。 解决这个问题的方法有两种,一种是更改MySQL数据库表的字符集,另一种是更改客户端连接MySQL数据库时的字符集。 更改M…

    database 2023年5月21日
    00
  • 如何优化SQL语句(全)

    以下是如何优化 SQL 语句的完整攻略: 1. 确定优化目标和范围 在进行 SQL 优化之前,必须先确定优化的目标和优化的范围。目标是什么?但凡是涉及查询性能的问题,往往都是执行效率低下。如果你能通过优化 SQL 减少了查询所需时间,或者缩短了执行查询所需时间的界面响应时间,那么目标就可以算是达成了。而范围则是只考虑 SQL 查询的优化,也就是针对 SELE…

    database 2023年5月19日
    00
  • 解决resultMap映射数据错误的问题

    当使用MyBatis进行数据映射时,我们可以通过ResultMap来手动指定SQL查询结果和Java对象之间的映射关系。但是,在使用ResultMap时,有时候会出现映射数据错误的问题。下面是解决此类问题的完整攻略: 1.确认SQL查询结果是否正确 首先需要确认SQL查询结果是否正确。可以通过直接在数据库查询中手动执行SQL语句或通过MyBatis生成的SQ…

    database 2023年5月18日
    00
  • MySql中的常用参数查询

    MySql中的常用参数查询涉及到数据库中一些常用的参数设置,包括数据类型、字段长度、索引、外键等。下面我将为您讲解详细的攻略。 一、查看数据库参数 我们可以使用以下命令来查看数据库的参数: show variables; 这条命令可以查看所有的参数设置,以及对应的值。 MySQL中有很多参数,包括InnoDB的参数,MyISAM的参数,以及全局性的参数等。我…

    database 2023年5月22日
    00
  • MongoDB删除集合

    删除MongoDB中的集合可以使用db.collection.drop()方法。这个方法可以接收一个留给可选参数的布尔值,指定是否完成删除集合的同时也删除了它的索引。 下面是删除一个名为 ‘myColl’ 的集合的代码示例: db.myColl.drop() 如果需要强制删除操作,则可以使用{force:true}选项: db.myColl.drop({fo…

    MongoDB 2023年3月14日
    00
合作推广
合作推广
分享本页
返回顶部