Redis

Redis介绍

Redis 是开源的,免费的,高性能的 非关系形数据库。

数据存储在内存,以key-value形式存储,类似于我们学习的字典 {name: ‘jack’ }

可以设置过期时间,过期自动删除,也可以做持久化。

关系型数据库: MySQL MySQL的缺陷: 1. 读取的时候相对较快, 但是写入数据是比较慢的, 读取速度是1w/s. 写入速度: 1000/s。 2. 读写时容易混淆,会读取出脏数据,需要对Mysql读写做限制. 3. 需要定义严格的表结构,插入数据需要满足完整性约束。 4. 数据存储在磁盘,相对于内存数据库,读写速度慢。

Redis安装
这里以windows系统为例: Redis 支持 32 位和 64 位。这个需要根据操作系统的实际情况选择,这里我们下载64bit。

Redis-x64-5.0.10.msi安装到 自己的windows。

注意:把 redis 的路径加到系统的环境变量里

然后就可以使用客户端连接

Redis通用命令
redis默认有16个 数据库(0-15) select 3 切换到数据库3

info 查看redis服务的信息 info replication查看主从复制的状况

keys * 查看所有的key, 生产环境中不使用 可能阻塞redis

查看key的数据类型 type key1

key 是否存在 exists key1

删除一个key del key1

重命名 rename key key1

清空数据库 flushdb/flushall

String类型
key 不宜过长,占用内存,也不宜过短,可读性差 如:user:lauf

值,为字符串或者数值,最多存储512

字符串的使用场景
作为缓存

并发计数,点赞、秒杀

带有效期的验证码,过期自动删除

String类型的练习
存储生成的短信验证码,方便下次验证,注意:短信验证码的有效期为10分钟

127.0.0.1:6379> set sms_code:1731111111 637905 EX 300  # 存储 1731111111该手机号的短信验证码 637905, 过期时间是5分钟
存储标志,防止短信验证码发送过于频繁,1分内只能发送一次

127.0.0.1:6379> set sms_code_flag:1731111111  1  EX 60  # 存储 1731111111该手机号是否发送短信验证码的标志, 过期时间是60s
取出短信验证码

127.0.0.1:6379> get sms_code:1731111111 # 取出短信验证码,过期之后,取出为(nil)
"637905"
 

List
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

类似: {name:[1,2,3,4,5,6,]}

插入列表
# 头插法
lpush key val1 val2 ...
127.0.0.1:6379> lpush numbers 1 2 3
(integer) 3

# 尾插法
127.0.0.1:6379> rpush numbers 8 9 0
(integer) 6
更新列表
# 修改某下标的值
lset key index val
127.0.0.1:6379> lset numbers 5 10  # 注意: redis中下标也是从0开始
OK
删除列表
# 头删法
lpop key # 删除第一个值, 并立即返回该值
127.0.0.1:6379> lpop numbers
"3"

# 尾删法
rpop key # 删除最后一个值, 并立即返回
127.0.0.1:6379> rpop numbers
"10"

#列表为空时,阻塞的删除
blpop  mylist  10
brpop mylist 10

# 删除指定的值
lrem key count value # 返回的是删除的个数
127.0.0.1:6379>lrem numbers 0 2  # 删除所有值为2的元素
(integer) 4

127.0.0.1:6379>lrem numbers -2 1  # 从表尾开始删除2个值为1的元素
(integer) 2
127.0.0.1:6379> lrem numbers 2 1  # 从表头开始删除2个值为1的元素
(integer) 2

# 截取数据
ltrim key start stop
127.0.0.1:6379> ltrim numbers 2 5  # 保留下标为 【2,5】之间的所有元素,删除其余元素
OK
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值