文章目录
- 1.基本介绍
- 1.多种数据结构支持
- 2.应用场景
- 2.Redis安装(直接安装到云服务器)
- 1.安装gcc
- 1.yum安装gcc
- 2.查看gcc版本
- 2.将redis6.2.6上传到/opt目录下
- 3.进入/opt目录下然后解压
- 4.进入 redis-6.2.6目录
- 5.编译并安装
- 6.进入 /usr/local/bin 查看是否有redis的命令
- 3.启动并使用redis
- 1.进入 /opt/redis-6.2.6/
- 2.将里面的redis.conf复制一份到/etc下
- 3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
- 3.启动redis,指定刚才的配置文件
- 4.检查redis是否启动
- 1.通过查看进程的方式,可以看到在6379端口监听
- 2.通过查看端口监听状态的方式
- 5.既然已经在6379端口监听了,就将这个端口开放,方便以后访问
- 1.腾讯云开启6379端口
- 2.宝塔开启6379端口
- 6.客户端访问和关闭redis
- 1.执行/usr/local/bin的redis-cli 指令会默认连接6379端口,也可以指定端口,如下
- 2.关闭redis(还是在bin目录下)
- 1.关闭6379端口的redis
- 2.指定端口关闭redis
- 3.在redis命令行的关闭方式
- 4.退出命令行:quit
- 4.redis指令
- 1.指令文档
- 2.基础操作
- 1.set和get基本操作(默认就是字符串,除非有空格否则可以不加双引号)
- 2.如果key已经存在,则会覆盖原来的值(跟HashMap很像)
- 3.输入clear清屏
- 4.quit/exit 退出命令行,数据依然在
- 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
- 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.官方文档
- 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.基本介绍
- 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的索引
1.基本介绍
1.多种数据结构支持
2.应用场景
2.Redis安装(直接安装到云服务器)
1.安装gcc
1.yum安装gcc
yum install gcc
2.查看gcc版本
gcc --version
2.将redis6.2.6上传到/opt目录下
3.进入/opt目录下然后解压
tar -zxvf redis-6.2.6.tar.gz
4.进入 redis-6.2.6目录
cd redis-6.2.6
5.编译并安装
make && make install
6.进入 /usr/local/bin 查看是否有redis的命令
cd /usr/local/bin
3.启动并使用redis
1.进入 /opt/redis-6.2.6/
cd /opt/redis-6.2.6/
2.将里面的redis.conf复制一份到/etc下
cp redis.conf /etc/redis.conf
3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
vim /etc/redis.conf
3.启动redis,指定刚才的配置文件
/usr/local/bin/redis-server /etc/redis.conf
4.检查redis是否启动
1.通过查看进程的方式,可以看到在6379端口监听
ps -aux | grep redis
2.通过查看端口监听状态的方式
netstat -anp | more
5.既然已经在6379端口监听了,就将这个端口开放,方便以后访问
1.腾讯云开启6379端口
2.宝塔开启6379端口
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端口,也可以指定端口,如下
redis-cli -p 6379
2.关闭redis(还是在bin目录下)
1.关闭6379端口的redis
redis-cli shutdown
2.指定端口关闭redis
redis-cli -p 6379 shutdown
3.在redis命令行的关闭方式
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
keys *
2.keys:列出以1结尾的key
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差不多