redis基础学习
是学习平台Redis入门视频课程的上课笔记,给自己看的,课程有配套课件,不懂是不是有版权的,btw,有需要可以戳我
一、下载安装看课件
将文件解压到指定目录:tar -解压方式 文件名 -C 指定路径
二、运行、结束:
启动:
/home/oss/software/redis-bin/bin
目录下
redis-server:启动服务端
redis-cli:启动客户端
myredis.con:从安装包里复制来的(原文件:redis.conf,可以自己编辑一些配置信息)
进入目录,执行./redis-server myredis.conf
或./redis-cli myredis.conf
启动服务/客户端
补充:./redis-cli -h localhost -p 6379
关闭:
服务端 Ctrl + c
客户端 shutdown
服务器 ./redis-cli shutdown
查看进程:
查看某应用?进程:ps aux | grep redis
ps 是process进程的简写
aux是选项
| 管道,过滤
查看某端口的进程信息:lsof -i:6379
三:编辑配置文件
(包含部分linux vi 相关指令
在文本中快速查找
/搜索内容
n
下一个或shift+n
上一个
q!
不保存,强制退出
wq
保存,退出
daemonize yes
配置为yes表示后台启动
四:基本操作命令
(一)string类型
- set/get/append/strlen
- select : 选择数据库,redis默认有16个库,以数字为编号
- keys * :显示所有的键key
- set :设置键值对,后面可以拓展有效时间,ex秒 ps毫秒,可以使用
ttl
查看剩余的有效时间;还可以通过nx/xx设置什么状态时可以set,nx库中不存在时才能设置,xx库中存在时才能设置 - get :获取键对应的数据
- exists:该键是否存在,存在的个数
- append:该建存在,则追加,返回追加后value的长度;不存在,则创建,返回当前value的长度
- strlen:该键value的长度
- flushdb:清空当前数据库的信息
- flushall:清除所有数据库里的数据
- del :删除某个key
- incr/decr/incrby/decrby
- incr:递增
- decr:递减
- incrby: 递增,设置步数
incrby 键名 2(步数)
- decrby:递减,设置步数
- getset/setex/setnx
- getset:获取旧值,同时将新值替换进去
- setex:设置值有效时间
- setnx:当key不存在时才能设置
- setrange/getrange
- setrange:设置指定位置开始的字符串
- getrange :获取指定位置的字符串
-
setbit/getbit
设置/获取指定位的BIT值
可以用于记录考勤记录,用二进制的形式去记录01状态值 -
mset/mget/msetnx
批量 设置/获取/不存在时设置 键值对
eg: mset key1 “hello” key2 “world”
(二)List类型
概念
在redis中,List是按照顺序排序的字符串链表 头(left)尾(right)操作效率高,中间操作效率低
操作
- lpush/lpushx/lrange
- lpush:从左往右插入List
- lrange:获取两个位置之间的元素(0表示第一个元素,1表示最后一个元素)
- lpushx :存在时插入
- lpop/llen
- lpop:从左弹出,取出链表头部的元素,链表中该数据不存在了
- llen:该链表的长度
- lrem/lindex/lset/ltrim
- lrem:从头开始,删除链表中的几个某元素
- lindex:获取索引值为几的元素
- lset:设置指定位置索引的元素
- ltrim:仅保留选定范围内的元素,两边删除
-
linsert
linsert 在某元素的前后插入 -
rpush/rpushx/rpop/rpoplpush
对应rpush…等,指从右开始操作
rpoplpush:从右弹出,从左插入(可以两个链表也可以只用一个)
(三)Set类型
概念
无序的字符合集,不允许重复元素。有一个特性是,可以在服务器端完成多个Sets之间的聚合操作(交并差)。
操作
sadd/smembers/sismember/scard
- sadd:向set类型的key中插入不存在的元素(无序的
- smembers:查看集合中的元素
- sismember:某元素是否在集合中
- scard:获取集合中元素的个数
srandmember/spop/srem/smove
- srandmember:随机返回一个成员,成员还在集合中
- spop:取出一个成员,成员会从集合中删除
- srem:移除元素
- smove:移动元素
sdiff/sdiffstore/sinter/sinterstore/sunion/sunionstore
- sdiff:获取多个集合之间的不同成员。
sdiff myset myset2 myset3
顺序是1、2的差集,再和3进行比对,获取差集 - sdiffstore:存储差集的最终结果
- sinter:获取多个集合之间的交集
- sinterstore :存储交集
- sunion: 获取多个集合之间的并集
- sunionstore:存储并集
应用
因为有唯一性,可以用于存储唯一的ip地址等有唯一性的数据;
还有交并差的特性,也有对应的可应用性