redis学习记录

本文详细介绍了Redis在Windows环境下的安装步骤,包括配置文件修改、密码设置及常见命令操作。探讨了Redis作为缓存、消息队列、排行榜等场景的应用,并深入解析其五种数据类型:String、Hash、List、Set、ZSet的使用方法。此外,还介绍了Redis的持久化机制、性能测试方法及发布订阅功能。
  • 1、安装redis

Windows安装redis
获取安装包,Windows的Redis安装包需要到以下GitHub链接找到。
1、链接:https://github.com/MSOpenTech/redis。打开网站后,找到Release,点击前往下载页面
在这里插入图片描述
2、在下载网页中,找到最后发行的版本(此处是3.2.100)。找到Redis-x64-3.2.100.msi和Redis-x64-3.2.100.zip,点击下载。这里说明一下,第一个是msi微软格式的安装包,第二个是压缩包。
在这里插入图片描述
3、双击msi的安装包开始安装,过程中选择添加redis目录到path中,端口默认为6379,并选择防火墙例外,从而保证外部可以正常访问redis服务;舍得最大值为100M。
4、安装完毕后,修改配置文件redis.windows-service.conf,而不是redis.windows.conf,后者是以非系统服务方式启动启程使用的配置文件。
5、找到含有requestpass的地方追加一行,设置密码requestpass 123456(设置后需要重启服务或者访问redis之后再重新设置下,命令config set requirepass “123456”)
6、打开cmd窗口,输入redis-cli并回车,如图说明安装并设置密码成功。
在这里插入图片描述

  • 2、Redis常用知识

1、redis是什么
redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。
2、支持的语言
在这里插入图片描述
3、redis应用场景
会话缓存(最常用)
消息队列,比如支付
活动排行榜或计数
发布、订阅消息(消息通知)
商品列表、评论列表等
4、redis数据类型
Redis一共支持5中数据类:string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set 有序集合)。
(1)string(字符串)
它是redis最基本的数据类型,一个key对应一个value,需要注意是一个键值最大存储512MB。
C:\Users\ly>redis-cli
127.0.0.1:6379> set key ‘hello world’
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set key ‘hello world’
OK
127.0.0.1:6379> get key
“hello world”
127.0.0.1:6379> getset key ‘nihao’
“hello world”
127.0.0.1:6379> get key
“nihao”
127.0.0.1:6379> set key ‘11’
OK
127.0.0.1:6379> get key
“11”
127.0.0.1:6379> mset key1 ‘hi’ key2 ‘nihao’ key3 ‘hello’
OK
127.0.0.1:6379> get key1
“hi”
127.0.0.1:6379> get key2
“nihao”
127.0.0.1:6379> get key3
“hello”
在这里插入图片描述
(2)hash(哈希)
redis hash是一个键值对的集合, 是一个string类型的field和value的映射表,适合用于存储对象
127.0.0.1:6379> hset redishash 1 ‘001’
(integer) 1
127.0.0.1:6379> hget redishash 1
“001”
127.0.0.1:6379> hmset redishash 1 ‘001’ 2 ‘002’
OK
127.0.0.1:6379> hget redishash 1
“001”
127.0.0.1:6379> hget redishash 2
“002”
127.0.0.1:6379> hmget redishash 1 2

  1. “001”
  2. “002”
    在这里插入图片描述
    (3)list(列表)
    是redis简单的字符串列表,它按插入顺序排序
    127.0.0.1:6379> lpush word hi
    (integer) 1
    127.0.0.1:6379> lpush word hello#插入index0
    (integer) 2
    127.0.0.1:6379> rpush word world#插入index-1
    (integer) 3
    127.0.0.1:6379> lrange word 0 2
  3. “hello”
  4. “hi”
  5. “world”
    127.0.0.1:6379> llen word
    (integer) 3
    127.0.0.1:6379> lpush word xxx
    (integer) 4
    127.0.0.1:6379> lrange word 0 3
  6. “xxx”
  7. “hello”
  8. “hi”
  9. “world”
    在这里插入图片描述
    (4)set(集合)
    是string类型的无序集合,也不可重复
    127.0.0.1:6379> sadd redis redisset
    (integer) 1
    127.0.0.1:6379> sadd redis redisset1
    (integer) 1
    127.0.0.1:6379> sadd redis redisset2
    (integer) 1
    127.0.0.1:6379> smembers redis
  10. “redisset1”
  11. “redisset2”
  12. “redisset”
    127.0.0.1:6379> sadd redis redisset
    (integer) 0
    127.0.0.1:6379> smembers redis
  13. “redisset1”
  14. “redisset2”
  15. “redisset”
    127.0.0.1:6379> smembers redis
  16. “redisset1”
  17. “redisset2”
  18. “redisset”
    127.0.0.1:6379> srem redis redisset#删除set中的一个value
    (integer) 1
    127.0.0.1:6379> smembers redis
  19. “redisset1”
  20. “redisset2”
    在这里插入图片描述
    (5)zset(sorted set 有序集合)
    是string类型的有序集合,也不可重复
    sorted set中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set 因此非常适合实现排名
    127.0.0.1:6379> zadd nosql 0 001
    (integer) 1
    127.0.0.1:6379> zadd nosql 0 002
    (integer) 1
    127.0.0.1:6379> zadd nosql 0 003
    (integer) 1
    127.0.0.1:6379> zcount nosql 0 0#数分数在0-0之间的value个数
    (integer) 3
    127.0.0.1:6379> zcount nosql 0 3
    (integer) 3
    127.0.0.1:6379> zcount nosql 1 3
    (integer) 0
    127.0.0.1:6379> zrem nosql 002#移除value为002的值
    (integer) 1
    127.0.0.1:6379> zcount nosql 0 3
    (integer) 2
    127.0.0.1:6379> zscore nosql 003#获取003的分数
    “0”
    127.0.0.1:6379> zrangebyscore nosql 0 10
  21. “001”
  22. “003”
    127.0.0.1:6379> zadd nosql 1 004
    (integer) 1
    127.0.0.1:6379> zadd nosql 1 003
    (integer) 0
    127.0.0.1:6379> zadd nosql 1 002
    (integer) 1
    127.0.0.1:6379> zadd nosql 2 005
    (integer) 1
    127.0.0.1:6379> zadd nosql 3 006
    (integer) 1
    127.0.0.1:6379> zrangebyscore nosql 0 10#依照分数排序
  23. “001”
  24. “002”
  25. “003”
  26. “004”
  27. “005”
  28. “006”

在这里插入图片描述
5、redis数据类型
select #选择数据库(数据库编号0-15)
quit #退出连接
info #获得服务的信息与统计
monitor #实时监控
config get #获得服务配置
flushdb #删除当前选择的数据库中的key
flushall #删除所有数据库中的key

6、redis的发布与订阅
redis发布与订阅(pub/sub)是它的一种消息通信模式,一方发送信息,一方接收信息。
下图是三个客户端同时订阅同一个频道
在这里插入图片描述
下图是有新信息发送给频道1时,就会将消息发送给订阅它的三个客户端
在这里插入图片描述
7、Redis持久化
redis持久有两种方式:Snapshotting(快照),Append-only file(AOF)
Snapshotting(快照)
1、将存储在内存的数据以快照的方式写入二进制文件中,如默认dump.rdb中
2、save 900 1
#900秒内如果超过1个Key被修改,则启动快照保存
3、save 300 10
#300秒内如果超过10个Key被修改,则启动快照保存
4、save 60 10000
#60秒内如果超过10000个Key被修改,则启动快照保存

Append-only file(AOF)
1、使用AOF持久时,服务会将每个收到的写命令通过write函数追加到文件中(appendonly.aof)
2、AOF持久化存储方式参数说明
appendonly yes #开启AOF持久化存储方式
appendfsync always #收到写命令后就立即写入磁盘,效率最差,效果最好
appendfsync everysec#每秒写入磁盘一次,效率与效果居中
appendfsync no #完全依赖OS,效率最佳,效果没法保证
8、Redis性能测试
自带相关测试工具
在这里插入图片描述
实际测试同时执行1万的请求
redis-benchmark -h 127.0.0.1 -p 6379 -c 5000 -n 100000
5000个并发连接,100000个请求,检测host为127.0.0.1 端口为6379的redis服务器性能
在这里插入图片描述

参考博客https://blog.youkuaiyun.com/middleware2018/article/details/80355418,主要用于个人学习记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值