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的索引
相关推荐
GDAL13 分钟前
Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战
数据库·sqlite·node.js
DCTANT1 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
AI、少年郎3 小时前
Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)
数据库·oracle
赤橙红的黄3 小时前
自定义线程池-实现任务0丢失的处理策略
数据库·spring
DataGear4 小时前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板
javascript·数据库·sql·信息可视化·数据分析·echarts·数据可视化
weixin_438335404 小时前
分布式锁实现方式:基于Redis的分布式锁实现(Spring Boot + Redis)
数据库·redis·分布式
暮乘白帝过重山4 小时前
为什么要写RedisUtil这个类
redis·开发·暮乘白帝过重山
码不停蹄的玄黓4 小时前
MySQL Undo Log 深度解析:事务回滚与MVCC的核心功臣
数据库·mysql·undo log·回滚日志
Qdgr_4 小时前
价值实证:数字化转型标杆案例深度解析
大数据·数据库·人工智能
数据狐(DataFox)5 小时前
SQL参数化查询:防注入与计划缓存的双重优势
数据库·sql·缓存