linux 常见的标识与Redis数据库详解
xxx@xxx:~$ :
第一个 xxx 只的是 用户名
第二个 xxx 代表的是 HOST主机
~ : 当前用户的根, 根的位置在 /home/用户名
$ : 代表当前用户是一个普通用户
# : 代表当前用户是超级用户
查看当前命令所在的位置
- pwd
文件夹/文件的常见命令
- mkdir
- ls
- rmdir
- rm
创建文件夹mkdir
mkdir test mkdir .test mkdir ~/test mkdir /home/xxx/test -- 递归的创建 test/a/b目录 mkdir -p test/a/b -v : 显示创建目录的信息
查看目录下的所有文件/文件夹 ls
-l : 以列表的形式格式化数据
drwxr-xr-x 2 xxx xxx 4096 9月 1 18:37 公共的 drwxr-xr-x 2 xxx xxx 4096 9月 1 18:37 模板 ... 第一列由10个字符组成,由 0-9 标识每一个字符 0 : d (文件夹) , - (文件), l (软连接) 1-3: 文件所属用户的权限 4-6: 文件所属用户组所在的权限 7-9: 其他用户所对应的权限 r : 读 w : 写 x : 可执行 第三列 代表文件所属用户 第四列 代表文件所属用户组
-a : 显示包含隐藏的文件 和 . 和 …
-A : 不显示 . 和 …
常见的命令
ls -l
ls -la
ls -ld
ll ==> ls -lap
删除文件夹 rmdir / rm
rmdir : 删除空目录
rmdir -p 路径 递归的删除空目录
rm 常见的参数
-f : 强制删除、忽略不存在 -i : 删除的时候、进行提示 -r : 递归的删除文件夹以及下面的所有的内容 -d : 删除空目录
rm -f
rm -rf
rm -i
rm -ri
PS: 禁止使用一个命令 rm -rf /
文件的基本操作
文件的创建
touch file : 新建一个空的文件
文件的编辑
- vi 编辑器
- vim 编辑器
sudo apt install vim
vim的三种操作模式
- 命令模式
- 编辑模式
- 命令底线模式
vim命令模式
当用户输入 vim 文件名
回车后、将自动进入命令模式
dd : 删除光标所在的行
xdd : x代表删除的行数
d$ : 从光标所在的位置删除到行的末尾
d0 : 从光标所在的位置删除到行的头部,不删除光标所在的位置
dG : 光标所在的位置,删除到底部
dxG : 从光标所在的位置,删除到指定的行
yy : 复制光标所在的行
xyy : x 代表复制的行数
y$ : 从光标所在的位置 复制到行的末尾
y0 : 从光标所在的位置 复制到行的头部
p : 粘贴
gg : 快速设置光标的位置到 文档的头部
G : 移动到文档的尾部
xG : x 代表 光标移动到的行数
. : 重复上一个命令
/ : 从上到下搜索
? : 从下到上搜索
搜索到内容后,如果要查找下一个,先按回车,在按 n / N
vim 编辑模式
从命令模式进入到编辑模式,需要按下
- i : 在光标所在的位置 前 插入数据
- a : 在光标所在的位置 后 插入数据
- o : 在光标所在行的 下一行(新的空白行)插入数据
如果从编辑模式要切换到 命令模式,则按下 ESC
vim 命令底线模式
从命令模式切换到命令底线模式 使用 :
即可
:w 保存,不退出
:q 不保存,退出(文件未改变)
:wq 保存并退出
:w! 强制写入,针对只读文件
:q! 强制退出,(文件被修改、且不保存)
:wq! 强制保存并退出
:set nu 显示行数
:set nonu 关闭行数
查看文件
cat -n file
nl file
tail -f file : 主要用来做日志的监控
文件的复制
cp -r source dict : 拷贝目录/文件
-r : 用来拷贝目录
-f : 强制性文件拷贝
-i : 覆盖的时候进行提示
两个linux服务器数据进行拷贝
将远程服务器的数据、拷贝到本地服务器
scp [-r] user@host:文件路径 拷贝到本地路径
将本地服务器的数据、拷贝到远程服务器
scp [-r] 本地路径 拷贝到 user@host:文件路径
文件的移动
mv source dest
如果 dest 是一个目录的话,是文件的移动
如果 dest 是一个文件的话, 是文件的重命名
文件的权限
r 读 4
w 写 2
x 可执行 1
chmod [-R ] 777 文件/文件夹
u 用户
g 组
o 其他
a 所有
chmod u+r 文件
chmod u-r 文件
更改文件的所属用户
chown [-R] 用户名[:组名] 文件
添加组/用户 groupadd, adduser, useradd
-- 添加一个 组 sudo groupadd test01 -- 删除一个 组 sudo groupdel test01 -- 创建一个 admin账户, 并设置了 该账户的主目录 sudo useradd -g test01 -d /home/admin -m admin -- 创建一个禁止登录的账户 (安装服务的比较常用) sudo useradd -s /bin/false admin (ubuntu) sudo useradd -s /sbin/nologin admin (centos) -- 把一个 用户 和 组进行关联 adduser 用户 组 # 查询 admin 用户的信息 id admin -- 删除用户 userdel -r admin usermod : 用来修改用户 groupmod : 用来修改组
其他命令
查看某个服务的进程信息
ps -ef | grep 某个服务的名字
杀死某个进程
sudo kill -9 pid
在 linux 搜索文件
sudo find / -name mysql*
Redis数据库
- Redis是一个NoSQL(非关系型数据库)
- Redis是一个基于内存的 KEY-VALUE 结构的数据库
- Redis是一个基于单线程的数据库
Redis支持的存储的数据类型
- String 字符串
- Hash 哈希
- List 列表
- Set 集合
- ZSet 有序集合
RDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL) (SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性
Linux安装 redis
自动安装
sudo apt install redis-server sudo systemctl restart redis sudo systemctl start redis sudo systemctl stop redis
手动安装
下载 redis安装包
wget http://download.redis.io/releases/redis-6.0.7.tar.gz
解压 redis-6.0.7.tar.gz 到 ~/app
tar -zxvf redis-6.0.7.tar.gz -C ~/app
先切换到 app目录
cd ~/app
创建一个软连接
ln -s ~/app/redis-6.0.7 ~/app/redis
编译 redis
-- 如果提示 make 不存在,则 安装 sudo apt install make -- 如果提示 /bin/sh: 1: cc: not found ,则需要安装 sudo apt install gcc make MALLOC=libc
将 redis的命令安装到 /usr/local/bin目录
sudo make install
启动 redis
redis-server ~/app/redis/redis.conf
通用命令
- 5种数据类型都支持的命令
- ttl : 查看某个键的剩余存活时间,单位是 秒,-2代表过期(不存在), -1 代表没有过期时间
- pttl : 查看某个键的剩余存活时间,单位是 毫秒
- keys * : 查看当前数据库下,所有的键
- del key : 删除键
- type : 查看键对应的类型
string命令
- set key value [ex seconds] [px milliseconds] [nx|xx]: 添加一个字符串
- setnx key value : key如果不存在,才添加 key-value
- mset key value key value … : 批量设置多个键值对数据
- getset key value : 将 key 设置为 value ,并返回 key的旧值
- get key : 根据键获取对应的值
- mget key… : 批量获取多个键对应的值
- getrange key start end : 获取key对应字符串的 范围
- strlen key : 获取 key 对应值的长度
- incr key : 对 key对应的值 + 1, 值必须是一个数字类型的字符串
- incrby key increment: 对 key对应的值 + increment, 值必须是一个数字类型的字符串
- decr key : 自减 1
- decrby key increment
- setex key seconds value : 添加一个字符串并设置过期时间,单位是秒
- psetex key milliseconds value : 添加一个字符串并设置过期时间,单位是毫秒
Hash命令
hset key field value : 添加一个字典、字典的键 field ,值是 value
hmset key field value [field value]… 批量添加字典中的键值对
hget key field : 获取字典中 field 对应的值
hgetall key : 获取 key 对应的字典
hkeys key : 获取 key对应的字典对应的所有的键
hvals key : 获取key 对应的字典对应的所有的值
hlen key : 获取字典对应的长度
hincrby key field increment : 将字典中对应 field属性的值自增 increment
hexists key field : 判断字典中是否存在 field属性
hdel key field : 删除字典中对应的 field 属性和值
list命令
lpush key val… : 向列表的头部插入数据
rpush key val… : 向列表的尾部插入数据
linsert key before/after ele val : 向 ele元素的前/后插入 val
lrange key start end : 查询从 start - end 区间的 数据、
lindex key index : 查询 index位置的元素
lset key index ele : 修改index位置的元素为 ele
lpop key : 删除第一个元素
rpop key : 删除最后一个元素
lrem key count val :
count = 0 : 删除列表中所有的 valcount > 0 : 从列表的头部删除 count 个 valcount < 0 : 从列表的尾部删除 count个 val
llen key : 获取列表长度
ltrim key start end : 截取列表中从start -end 之间的元素,返回列表
set命令 sadd key member… : 添加成员smembers key : 查看集合中所有的成员srem key member … : 删除指定的成员spop key [count] : 随机从集合中删除 count个成员,如果不指定 count ,默认是1scard key : 获取集合的长度sismember key member : 判断 member 是否是集合中的成员srandmember key [count] : 随机从集合中 返回 count个成员
zset命令
zadd key score member [score member]… : 向集合中添加成员和分数、分数是一个double 类型,用来进行排序
zrange key start end [withscores] : 升序查询所有的成员
zrevrange key start end [withscores] : 降序查询所有的成员
zrangebyscore key min max : 升序查询分数在 min-max 之间的所有成员
zrevrangebyscore key max min : 降序查询分数在 min-max 之间的所有成员
zrank key member : 查询成员在集合中的索引位置
zrevrank key member : 查询某个成员在集合中的排名,从0开始
zscore key member : 查询某个成员的分数
zcount key min max : 查询分数在min-max之间的人数
zcard key : 获取成员数量
zrem key member… : 删除集合中的指定成员
zremrangebyscore key min max : 移除成绩在 min-max之间的所有成员
zremrangebyrank key start stop : 移除排名从 start-stop之间的所有成员
zrangebylex key min max: 要求有序集合中所有的成员分数相同
min -
代表最小值, (
代表不包含 [
代表包含
max +
代表最大值, (
代表不包含 [
代表包含
zrangebylex zset - + : 查询集合中所有数据 zrangebylex zset (a [d : 查询集合 大于 a 小于等于d zrangebylex zset [a (d : 查询集合 大于等 a 小于d
到此这篇关于linux 常见的标识与Redis数据库的文章就介绍到这了,更多相关linux Redis数据库内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了Redis连接池配置及初始化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-29
- 这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
详解redis desktop manager安装及连接方式
这篇文章主要介绍了redis desktop manager安装及连接方式,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-15- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法。...2015-03-15
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
- 这篇文章主要介绍了浅谈redis key值内存消耗以及性能影响,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
- 这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
Linux安装Pytorch1.8GPU(CUDA11.1)的实现
这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25- 最近在工作中遇到了一个问题,通过查找相关资料才得知原因是因为返回结果的问题,下面这篇文章主要给大家介绍了关于lua读取redis数据的null判断的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下...2020-06-30
- 这篇文章主要介绍了SpringBoot集成Redis实现消息队列的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10