linux和redis基本使用
linux
ifup ens160
ip addr
ls 列出目标路径的内容
ls[-a -l -h] [Linux路径]
-a意思是all的意思,列出全部文件(包括隐藏的文件)
-l以列表排列的形式显示内容
组合使用 (-a -l,-al, -la)显示全部并且以列表显示
-h与-l配合使用显示大小单位
cd 切换当前工作目录 change directory
cd [Linux路径]如果不写路径会回到~目录
pwd 查看当前所在的工作目录
pwd :print work directory
相对路径
以根目录为起点描述linux路径,开头必须写斜杠(/)
绝对路径
以当前目录为起点描述linux路径,开头可不必写斜杠(/)
路径表示符
. 表示当前目录
.. 表示上一级目录
~ 表示home目录
mkdir
mkdir命令可以创建新的目录(文件夹)
mkdir:Make Directory
mkdir [-p] linux路径
-p 自动创建不存在的父目录
ctrl+l一键清屏 clear
touch创建文件
touch linux路径 路径标识符可使用
cat查看文件内容
cat linux路径
more查看文件内容支持翻页查找
more linux路径
查看中通过空格翻页
按b上一页
按q退出
cp 复制文件或文件夹
cp:copy
cp [-r] 参数1 参数2
-r 用于复制文件夹时使用表示递归
参数1,linux路径,表示被复制方
参数2,linux路径,表示要复制方s
mv命令实现文件移动
mv 参数1 参数2
参数1,linux路径,表示被移动的文件或文件夹
参数2,linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
rm用于删除文件或文件夹
remove
rm[-r -f]参数1 参数2 ……参数N
-r删除文件夹
-f表示force 强行删除
rm命令支持通配符*,用来做模糊匹配
text 以text结尾
text 以text开头
text 包含text
su - root切换为root用户
exit注销
which查看一系列命令的程序文件存在那里
which 要查找的命令
find 查找指定的文件
find 起始路径 -name “被查找的文件名”
可使用*通配符查询
find 起始路径 -size + n[kMG]
+,-表示大于小于
n表示大小数字
kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
find / -size +100k&&-200k
grep从文件中通过关键字过滤文件行
grep [-n] 关键字 文件路径
-n 表示在结果中显示匹配的行的行号
参数,关键字,表示过滤的关键字,带有空格或其他特殊符号建议用双引号
参数,文件路径,表示要过滤内容和文件路径,可作为内容输入端口
wc统计文件的行数,单词数量
wc[-c -m -l -w] 文件路径
-c 统计bytes数量
-m 统计字符数量
-l 统计行数
-w 统计单词数量
| 管道符
将管道左边命令的结果作文右边命令的输入
如 cat itheima.txt | grep itheima
ps -ef | grep redis
验证redis是否启动 并显示redis启动的编号
kill -9 1683 可以关闭对应的redis服务
redis-server redis.conf
开启redis
redis-cli
AUTH 123456
redis
通用操作
set name key_name:创建一个key
keys:查询所有符合模板的key
DEL :删除一个指定的key
EXISTS:判断key是否存在
EXPIRE:给一个key设置有效期,
TTL:查看一个key的剩余有效期
string类型
其value是字符串,不过根据字符串的格式不同,又可以分为3类
string :普通字符串
int:整数可以自增加,自减
float:浮点类型,可以自增,自减
不管是那种格式,底层都是字节数组组成存储,只不过是编码方式不同,字符串类型的最大空间不能超过512m
String中常见命令
set:添加或修改已存在的string类型的键值对
get:根据key获取string类型的value
mset:批量添加多个string类型的键值对
mget:根据多个key获取多个string类型的value
incr:让一个整型的key自增1
incrby:让一个整数的key自增并指定步长,例如:incrby num 2让num值自增2
incrbyfloat:让一个浮点类型的数字自增并指定步长
setnx:添加一个string类型的键值对,前提是这个key不存在
setex:添加一个string键值对,并且指定有效期
key的结构
redis的key允许有多个单词形式组成,多个单词之间用’:’隔开,
项目名:业务名:类型:id
如果value是个java对象,则可以将对象序列化为json字符串存储
feng:product:1 ‘{“id”:1,”name”:”小米su7”}’
hash类型
其value是一个无序字典,类似java中的hashmap
hash结构可以将对象中的每个字段独立存储,可以针对单个字段做crud
常见命令有
hset key field value: 添加或者修改hash类型key的field的值
hget key field:获取一个hash类型的field的值
hmset:批量设置多个hash类型key的field的值
hmget:批量获取多个hash类型key的field的值
hgetall:获取一个hash类型的key中的所有的field和value
hkeys:获取一个hash类型的key中所有的field
hvals:获取一个hash类型的key中的所有value
hincrby:让一个hash类型key的字段值自增并指定步长
hsetnx:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行
list类型
redis中的list类型与java中的linkedlis类似,可以看做是一个双向链表结构,
既可以支持正向检索也可以支持反向检索
有序
元素可重复
插入和删除快
查询速度一般
lpush key element :向列表左侧插入一个或多个元素
lpop key :移除并返回列表左侧的第一个元素,没有则会返回null
rpush key element :向右侧插入一个或多个元素
rpop key :移除并返回列表右侧的第一个元素
lrange key star end :返回一段角标范围内的所有元素
blpop和brpop:与lpop和rpop类似,只不过在没有元素时等待指定时间,而不是直接返回null
利用list模拟一个栈
模拟一个队列
模拟一个堵塞队列
set类型
类似hashset,可以看做是一个value为null的hashmap
无序
元素不可重复
查找快
支持交集并集差集等功能
sadd key memeber :向set中添加一个或多个元素
srem key memeber:移除set中的指定元素
scard key:返回set中元素个数
sismember key member :判断一个元素是否存在与set中
smembers :获取set中的所有元素
sinter key1 key2 :求key1与key2的交集
sdiff key1 key2 :求key1与key2的差集
sunion key1 key2 :求key1和key2的并集
sortedset类型
类似java treeset 每个元素都带有一个score,可以基于score属性对元素排序,
可排序
元素不重复
查询速度快
经常被来实现排行榜
zadd key score member:添加一个或多个元素到sorted set
。。。。
批量删除
redis-cli -h 127.0.0.1 -p 6379 -a 123456 keys “eyJ*” | xargs redis-cli -h 127.0.0.1 -p 6379 -a 123456 del