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技术站