撸鸭撸 Redis入门第一章

1.什么是Redis?

使用C语言编写,一款开源的高性能基于内存运行的键值对NoSql数据库。

2.特点

2.1 持久化,数据保存在磁盘中,重启之后可以将数据再次加载到内存中
2.2 支持多种数据类型,处了KV类型的数据,还支持list、set、hash等数据结构

3.Redis的应用场景

3.1 热点数据加速查询,如热点商品,热点信息等访问量较高的数据
3.2 即使的信息查询,如公交车到站信息,在线人数等
3.3 时效性信息控制,如验证码控制,股票控制

4.基础知识

4.1 Redis默认有16个库,默认使用第0个
4.2 可以使用select 1 切换库
4.3 DBSIZE 查询数据库大小
4.4 keys * 查看当前数据库下所有的key
5.5 flushdb 清除当前库数据
5.6 flushall 删除所有库数据

思考,为什么端口号是6379;明星名称(了解,粉丝效应)

Merz全名Alessia Merz,是意大利的一位广告女郎,根据数据九键得出6379,就是下面这位:
在这里插入图片描述

5.Redis为何很快?

明白Redis是很快的,官方表示Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了
为啥单线程还这么快?
C写的,官网提供的数据是100000+的Qps,说明这个不比k-v存储 的 mc 差
误区一:很多人认为高性能的服务器一定是多线程的,不一定哦。
误区二:多线程(CPU上下文切换)一定比单线程效率高。
先去CPU》内存》硬盘的速度要有所了解!
核心:Redis是将所有的数据放在内存,所以使用单线程效率就是最高的,多线程切换是个耗时间的操作。
对于内存系统来说,如果没有上下文切换,效率就是最高的。
多次读写都是在一个cup上的,所以在内存上效率就是最高的。

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)

五种数据类型

String Redis-key

exists 判断是否存在 返回1存在 0不存在
move name 1 数据移库
expire name 10 设置过期时间
ttl name 查看过期剩余时间 -2为过期
type age 查看当前key的一个类型
append key1 2 追加字符串
strlen key1 查看字符串长度
i++ 操作
incr view 自增1
decr view 自减1
incrby view 10 #可以设置步长,指定增量!
decrby view 10
GETRANGE key1 0 2 字符串截取【0,2】
GETRANGE key1 0 -1 获取所有字符串
SETRANGE key2 1 xx 替换指定位置的开始的字符串!
###################################################
setex (set with expire )#设置过期时间
setex key3 30 ‘hello’ #设置key3的值为hello,30秒过期
setnx (set with expire )#当前值不存在
setnx mykey “M” #如果mykey不存在则创建mykey返回1,存在则失败返回0
###################################################
mset k1 v1 k2 v2… #批量存储
mget k1 k2 #批量获取
msetnx k7 o #nx存储,含原子性,要么全部成功,要么全部失败
###################################################
set user:1 {name:zhangsan,age:3}
set user:1 :name zhangsan
getset db k 如果不存在值则返回null,如果存在值则获取值,并设置新的值

List 列表 在Redis里面可以实现栈、队列、阻塞队列!

所有的list命令都是以L开头的
LPUSH list one #将一个值或多个值,插入到列表头部(左)
RPUSH list right #将一个值或多个值,插入到列表尾部(右)
LRANGE list 0 -1 #区间获取所有值
LPOP list #移除左侧值
RPOP list #移除右侧值
lindex list 1 #获取索引1的值
Llen list #获取列表长度
ltrim mylist 2 4 #剪修 根据2到4索引剪切
rpoplpush mylist myotherlist #将mylist最后元素移除到新的列表中
lset list 0 item #将列表中指定下标的值替换为另外一个值
linsert list after “item” “aftee” #在之前之后位置插入
linsert list before “item” “other”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小梦ITSuper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值