Redis(基础指令和五大数据类型)

文章目录

1.基本介绍

1.多种数据结构支持
2.应用场景

2.Redis安装(直接安装到云服务器)

1.安装gcc
1.yum安装gcc
sh 复制代码
yum install gcc
2.查看gcc版本
sh 复制代码
gcc --version
2.将redis6.2.6上传到/opt目录下
3.进入/opt目录下然后解压
sh 复制代码
tar -zxvf redis-6.2.6.tar.gz
4.进入 redis-6.2.6目录
sh 复制代码
cd redis-6.2.6
5.编译并安装
sh 复制代码
make && make install
6.进入 /usr/local/bin 查看是否有redis的命令
sh 复制代码
cd /usr/local/bin

3.启动并使用redis

1.进入 /opt/redis-6.2.6/
sh 复制代码
cd /opt/redis-6.2.6/
2.将里面的redis.conf复制一份到/etc下
sh 复制代码
cp redis.conf /etc/redis.conf
3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
sh 复制代码
vim /etc/redis.conf
3.启动redis,指定刚才的配置文件
sh 复制代码
/usr/local/bin/redis-server /etc/redis.conf
4.检查redis是否启动
1.通过查看进程的方式,可以看到在6379端口监听
sh 复制代码
ps -aux | grep redis
2.通过查看端口监听状态的方式
sh 复制代码
netstat -anp | more
5.既然已经在6379端口监听了,就将这个端口开放,方便以后访问
1.腾讯云开启6379端口
2.宝塔开启6379端口
sh 复制代码
firewall-cmd --permanent --add-port=6379/tcp && firewall-cmd --reload && firewall-cmd --query-port=6379/tcp
6.客户端访问和关闭redis
1.执行/usr/local/bin的redis-cli 指令会默认连接6379端口,也可以指定端口,如下
sh 复制代码
redis-cli -p 6379
2.关闭redis(还是在bin目录下)
1.关闭6379端口的redis
sh 复制代码
redis-cli shutdown
2.指定端口关闭redis
sh 复制代码
redis-cli -p 6379 shutdown
3.在redis命令行的关闭方式
sh 复制代码
shutdown
4.退出命令行:quit

4.redis指令

1.指令文档

https://www.redis.net.cn/tutorial/3506.html

2.基础操作
1.set和get基本操作(默认就是字符串,除非有空格否则可以不加双引号)
2.如果key已经存在,则会覆盖原来的值(跟HashMap很像)
3.输入clear清屏
4.quit/exit 退出命令行,数据依然在
5.help + 命令 获取帮助文档
3.对key操作的指令
1.keys:列出所有的key
sh 复制代码
keys *
2.keys:列出以1结尾的key
sh 复制代码
keys *1
3.exists:判断某个key是否存在,返回1存在,返回0不存在
4.type:判断key的类型
5.del:删除指定的key,成功返回1
6.unlink:异步删除key,不阻塞
7.关于key的过期时间
1.expire key 100:设置key时指定过期时间为100s
2.ttl:查看key还有多少秒过期,-1永不过期,-2表示过期
4.对DB的操作(redis默认有16个库0-15)
1.select 1 切换到1号库
2.dbsize 查看当前库key的数量
3.flushdb 清空当前库
4.flushall 清空所有库(谨慎)

5.Redis五大数据类型

1.官方文档

https://www.redis.net.cn/tutorial/3501.html

2.数据类型
3.string类型
1.append 追加字符到string后面,返回总的字符串长度
1.key存在的情况,直接追加
2.key不存在的情况,就相当于set了
2.strlen 获得值的长度
3.setnx 只有在key不存在的情况才设置key,成功返回1
4.incr 为key存储的数字值+1,如果key不存在则直接设置为1
5.decr 为key存储的数字值-1,如果key不存在则直接设置为-1
6.在incrby 和 decrby 的可以设置步长
7.m 批量设置k-v,具有原子性,一个失败则全部失败
1.mset 批量set
2.mget 批量get
3.msetnx 批量setnx,有一个失败则全部失败
8.getrange 获取key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个
9.setrange 设置key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个
10.setex 设置值的时候同时设置过期时间
11.getset 设置值的同时得到原来的值
6.list类型
1.列表类型底层是双向链表
2.lpush,rpush 向左边或右边插入一个或多个值
1.注意:如果是左边插入的是a,b,c则实际上是c,b,a
3.lrange 查看list的元素,0代表第一个,-1代表最后一个,-2代表倒数第二个,0 -1 则代表所有
4.lpop,rpop从左边或者右边吐出一个值
5.rpoplpush key1列表右边吐出一个值,插入到key2列表的左边
6.lindex 按照下标返回数据
7.llen 获得列表长度
8.linsert 向一个值的前面或者后面插入一个元素
9.lrem 从左边删除n个value
10.list最佳实践
1.系统通知,按照时间顺序展示
2.在这里如果使用lpush,则取出时,会先取出最近加入的消息
7.set
1.基本介绍

set可以自动排重,并且是无序的,跟HashSet差不多

2.sadd 向集合中加入一个或多个元素
3.smembers 取出该集合的所有元素(与加入顺序不一定相同)
4.sismember 判断集合中是否有某个元素
5.scard 判断当前集合中有几个元素
6.srem 删除集合中的某个元素
7.spop 随机吐出集合中的一个元素
8.srandmember 随机取出n个值
9.smove 把集合中的一个元素移动到另一个集合中
10.sinter 返回两个集合的交集
11.ssuion 返回两个集合的并集
12.sdiff 返回两个集合的差集
8.hash
1.基本介绍
2.hset 添加一个或多个键值对,如果key已经存在,就在这个基础上添加
3.hget 获取key对应的field的value,如果没有该field则返回null
4.hmget 批量获取key对应的field的value
5.hexists 查看field是否存在
6.hkeys 查看该key对应的所有field
7.hvals 查看该key对应的所有value
8.hincrby 对value进行加减操作
9.hsetnx 将hash表中key的域field的值设置为value,当且仅当field不存在
9.zset(有序集合)
1.基本介绍
2.zadd 添加一个或多个zset
3.zrange 按照下标来取出元素(默认按照score从小到大排序)
4.zrevrange 按照下标取出元素(逆序)
5.在后面添加 withscores则与score一起返回
6.zscore 查看某个value的排序码
7.zrangebyscore 根据分数从小到大取出指定范围的元素,下标从1开始
8.zrevrangebyscore 根据分数从大到小取出指定范围的元素,先写max再写min
9.zincrby 为key的成员加上增量
10.zrem 删除某个元素
11.zcount 根据分数统计数量
12.zrank 返回value的索引
相关推荐
sdaxue.com1 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码
o(╥﹏╥)2 小时前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
海海不掉头发2 小时前
苍穹外卖-day05redis 缓存的学习
学习·缓存
阿里嘎多学长2 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_2 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
Sunyanhui12 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql
老王笔记2 小时前
MHA binlog server
数据库·mysql
lovelin+v175030409663 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
川石教育3 小时前
Vue前端开发-缓存优化
前端·javascript·vue.js·缓存·前端框架·vue·数据缓存