文章目录
-
- 1.基本介绍
- 2.Redis安装(直接安装到云服务器)
-
-
- 1.安装gcc
- 2.将redis6.2.6上传到/opt目录下
- 3.进入/opt目录下然后解压
- [4.进入 redis-6.2.6目录](#4.进入 redis-6.2.6目录)
- 5.编译并安装
- [6.进入 /usr/local/bin 查看是否有redis的命令](#6.进入 /usr/local/bin 查看是否有redis的命令)
-
- 3.启动并使用redis
-
-
- [1.进入 /opt/redis-6.2.6/](#1.进入 /opt/redis-6.2.6/)
- 2.将里面的redis.conf复制一份到/etc下
- [3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)](#3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动))
- 3.启动redis,指定刚才的配置文件
- 4.检查redis是否启动
- 5.既然已经在6379端口监听了,就将这个端口开放,方便以后访问
- 6.客户端访问和关闭redis
-
- [1.执行/usr/local/bin的redis-cli 指令会默认连接6379端口,也可以指定端口,如下](#1.执行/usr/local/bin的redis-cli 指令会默认连接6379端口,也可以指定端口,如下)
- 2.关闭redis(还是在bin目录下)
-
- 4.redis指令
-
-
- 1.指令文档
- 2.基础操作
-
- 1.set和get基本操作(默认就是字符串,除非有空格否则可以不加双引号)
- 2.如果key已经存在,则会覆盖原来的值(跟HashMap很像)
- 3.输入clear清屏
- [4.quit/exit 退出命令行,数据依然在](#4.quit/exit 退出命令行,数据依然在)
- [5.help + 命令 获取帮助文档](#5.help + 命令 获取帮助文档)
- 3.对key操作的指令
-
- 1.keys:列出所有的key
- 2.keys:列出以1结尾的key
- 3.exists:判断某个key是否存在,返回1存在,返回0不存在
- 4.type:判断key的类型
- 5.del:删除指定的key,成功返回1
- 6.unlink:异步删除key,不阻塞
- 7.关于key的过期时间
-
- [1.expire key 100:设置key时指定过期时间为100s](#1.expire key 100:设置key时指定过期时间为100s)
- 2.ttl:查看key还有多少秒过期,-1永不过期,-2表示过期
- 4.对DB的操作(redis默认有16个库0-15)
-
- [1.select 1 切换到1号库](#1.select 1 切换到1号库)
- [2.dbsize 查看当前库key的数量](#2.dbsize 查看当前库key的数量)
- [3.flushdb 清空当前库](#3.flushdb 清空当前库)
- [4.flushall 清空所有库(谨慎)](#4.flushall 清空所有库(谨慎))
-
- 5.Redis五大数据类型
-
-
- 1.官方文档
- 2.数据类型
- 3.string类型
-
- [1.append 追加字符到string后面,返回总的字符串长度](#1.append 追加字符到string后面,返回总的字符串长度)
- [2.strlen 获得值的长度](#2.strlen 获得值的长度)
- [3.setnx 只有在key不存在的情况才设置key,成功返回1](#3.setnx 只有在key不存在的情况才设置key,成功返回1)
- [4.incr 为key存储的数字值+1,如果key不存在则直接设置为1](#4.incr 为key存储的数字值+1,如果key不存在则直接设置为1)
- [5.decr 为key存储的数字值-1,如果key不存在则直接设置为-1](#5.decr 为key存储的数字值-1,如果key不存在则直接设置为-1)
- [6.在incrby 和 decrby 的可以设置步长](#6.在incrby 和 decrby 的可以设置步长)
- [7.m 批量设置k-v,具有原子性,一个失败则全部失败](#7.m 批量设置k-v,具有原子性,一个失败则全部失败)
-
- [1.mset 批量set](#1.mset 批量set)
- [2.mget 批量get](#2.mget 批量get)
- [3.msetnx 批量setnx,有一个失败则全部失败](#3.msetnx 批量setnx,有一个失败则全部失败)
- [8.getrange 获取key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个](#8.getrange 获取key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个)
- [9.setrange 设置key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个](#9.setrange 设置key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个)
- [10.setex 设置值的时候同时设置过期时间](#10.setex 设置值的时候同时设置过期时间)
- [11.getset 设置值的同时得到原来的值](#11.getset 设置值的同时得到原来的值)
- 6.list类型
-
- 1.列表类型底层是双向链表
- [2.lpush,rpush 向左边或右边插入一个或多个值](#2.lpush,rpush 向左边或右边插入一个或多个值)
- [3.lrange 查看list的元素,0代表第一个,-1代表最后一个,-2代表倒数第二个,0 -1 则代表所有](#3.lrange 查看list的元素,0代表第一个,-1代表最后一个,-2代表倒数第二个,0 -1 则代表所有)
- 4.lpop,rpop从左边或者右边吐出一个值
- [5.rpoplpush key1列表右边吐出一个值,插入到key2列表的左边](#5.rpoplpush key1列表右边吐出一个值,插入到key2列表的左边)
- [6.lindex 按照下标返回数据](#6.lindex 按照下标返回数据)
- [7.llen 获得列表长度](#7.llen 获得列表长度)
- [8.linsert 向一个值的前面或者后面插入一个元素](#8.linsert 向一个值的前面或者后面插入一个元素)
- [9.lrem 从左边删除n个value](#9.lrem 从左边删除n个value)
- 10.list最佳实践
- 7.set
-
- 1.基本介绍
- [2.sadd 向集合中加入一个或多个元素](#2.sadd 向集合中加入一个或多个元素)
- [3.smembers 取出该集合的所有元素(与加入顺序不一定相同)](#3.smembers 取出该集合的所有元素(与加入顺序不一定相同))
- [4.sismember 判断集合中是否有某个元素](#4.sismember 判断集合中是否有某个元素)
- [5.scard 判断当前集合中有几个元素](#5.scard 判断当前集合中有几个元素)
- [6.srem 删除集合中的某个元素](#6.srem 删除集合中的某个元素)
- [7.spop 随机吐出集合中的一个元素](#7.spop 随机吐出集合中的一个元素)
- [8.srandmember 随机取出n个值](#8.srandmember 随机取出n个值)
- [9.smove 把集合中的一个元素移动到另一个集合中](#9.smove 把集合中的一个元素移动到另一个集合中)
- [10.sinter 返回两个集合的交集](#10.sinter 返回两个集合的交集)
- [11.ssuion 返回两个集合的并集](#11.ssuion 返回两个集合的并集)
- [12.sdiff 返回两个集合的差集](#12.sdiff 返回两个集合的差集)
- 8.hash
-
- 1.基本介绍
- [2.hset 添加一个或多个键值对,如果key已经存在,就在这个基础上添加](#2.hset 添加一个或多个键值对,如果key已经存在,就在这个基础上添加)
- [3.hget 获取key对应的field的value,如果没有该field则返回null](#3.hget 获取key对应的field的value,如果没有该field则返回null)
- [4.hmget 批量获取key对应的field的value](#4.hmget 批量获取key对应的field的value)
- [5.hexists 查看field是否存在](#5.hexists 查看field是否存在)
- [6.hkeys 查看该key对应的所有field](#6.hkeys 查看该key对应的所有field)
- [7.hvals 查看该key对应的所有value](#7.hvals 查看该key对应的所有value)
- [8.hincrby 对value进行加减操作](#8.hincrby 对value进行加减操作)
- [9.hsetnx 将hash表中key的域field的值设置为value,当且仅当field不存在](#9.hsetnx 将hash表中key的域field的值设置为value,当且仅当field不存在)
- 9.zset(有序集合)
-
- 1.基本介绍
- [2.zadd 添加一个或多个zset](#2.zadd 添加一个或多个zset)
- [3.zrange 按照下标来取出元素(默认按照score从小到大排序)](#3.zrange 按照下标来取出元素(默认按照score从小到大排序))
- [4.zrevrange 按照下标取出元素(逆序)](#4.zrevrange 按照下标取出元素(逆序))
- [5.在后面添加 withscores则与score一起返回](#5.在后面添加 withscores则与score一起返回)
- [6.zscore 查看某个value的排序码](#6.zscore 查看某个value的排序码)
- [7.zrangebyscore 根据分数从小到大取出指定范围的元素,下标从1开始](#7.zrangebyscore 根据分数从小到大取出指定范围的元素,下标从1开始)
- [8.zrevrangebyscore 根据分数从大到小取出指定范围的元素,先写max再写min](#8.zrevrangebyscore 根据分数从大到小取出指定范围的元素,先写max再写min)
- [9.zincrby 为key的成员加上增量](#9.zincrby 为key的成员加上增量)
- [10.zrem 删除某个元素](#10.zrem 删除某个元素)
- [11.zcount 根据分数统计数量](#11.zcount 根据分数统计数量)
- [12.zrank 返回value的索引](#12.zrank 返回value的索引)
-
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差不多