Redis入门
Redis简介
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
下载地址:https://github.com/microsoftarchive/redis/releases
Redis优势
- 性能高,读写速度快
- 支持多种数据类型( Strings, Lists, Hashes, Sets 及 Ordered Sets )
- 原子性,意思就是要么同时成功执行要么同时失败(与mysql的特性一致)
Redis启动
前戏
想要快速启动redis,就需要配置环境变量
# 注意:在安装redis的过程中会让你勾选配置环境变量的按钮,选上之后自动配置,直接在cmd窗口启动即可
服务端
redis默认的端口号是:6379,我们为了防止端口号已被占用,就会把端口号该成9090
redis-server --port 端口号
输入下列命令启动redis服务端
redis-server --port 9090
客户端
再打开一个cmd窗口
完整命令:redis-cli -h 127.0.0.1 -p 9090 -a password
输入下列命令即可启动客户端 # 端口号要是服务端的端口号
redis-cli -p 9090
这样启动会出现中文乱码问题
解决方案:redis-cli --raw -p 9090 # 启动命令后面加--raw
数据类型
Redis支持五种数据类型:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
string(字符串)
语法:
set 键 值
get 键
127.0.0.1:9090> set key '少帅'
OK
127.0.0.1:9090> get key
少帅
注意:一个键最大能存储 512MB。
hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
del shuai 用于删除前面测试用过的 key
127.0.0.1:9090> del shuai
0
127.0.0.1:9090> hmset shuai field1 'hello' field2 'world'
OK
127.0.0.1:9090> hget shuai field1
hello
127.0.0.1:9090> hget shuai field2
world
list(列表)
"""
Redis 列表是简单的字符串列表,按照插入顺序排序。
你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
"""
127.0.0.1:9090> lpush shuai redis
1
127.0.0.1:9090> lpush shuai mongodb
2
127.0.0.1:9090> lpush shuai mysql
3
127.0.0.1:9090> lrange shuai 0 10 # 0 10是索引,超出和低于范围都不报错,
mysql
mongodb
redis
set(集合)
添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0。
127.0.0.1:9090> sadd shuai redis
1
127.0.0.1:9090> sadd shuai mongodb
1
127.0.0.1:9090> sadd shuai mysql
1
127.0.0.1:9090> smembers shuai
mongodb
mysql
redis
127.0.0.1:9090> sadd shuai mysql
0
127.0.0.1:9090> smembers shuai
mongodb
mysql
redis
zset(sorted set:有序集合)
127.0.0.1:9090> zadd shuai 1 redis
1
127.0.0.1:9090> zadd shuai 2 mongodb
1
127.0.0.1:9090> zadd shuai 3 mysql
1
127.0.0.1:9090> zadd shuai 4 mysql
0
127.0.0.1:9090> zadd shuai 5 mysql
0
127.0.0.1:9090> zrange shuai 0 10
redis
mongodb
mysql
127.0.0.1:9090> zrange shuai 0 10 withscores # scores 去重
redis
1
mongodb
2
mysql
5
Redis事务
"""
一个事务从开始到执行会经历以下三个阶段:
开始事务。 MULTI
命令入队。 发送 EXEC 命令前被放入队列缓存
执行事务。
注:在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
"""
127.0.0.1:9090> multi
OK
127.0.0.1:9090> set book-name 'learn python'
QUEUED
127.0.0.1:9090> get book-name
QUEUED
127.0.0.1:9090> sadd tag 'python' 'java' 'php'
QUEUED
127.0.0.1:9090> smembers tag
QUEUED
127.0.0.1:9090> exec
OK
learn python
3
php
java
python
本文作者:程序员少帅
本文链接:https://www.cnblogs.com/shaoshuaicoding/articles/15871593.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步