☰
速通redis基础
2026/9/29 9:56:14 网站建设 项目流程

认识Nosql

了解redis

安装redis

这里安装是在Linux中安装,提供两种方法,一种就是自己手动配置redis,另一种就是通过ailiyun 的yum在线仓库直接下载,不用下载gcc这个编译器

方法一:

第一步:先装 epel 扩展源(redis 在 epel 里面)

yum install -y epel-release

第二步安装redis

yum install -y redis;

第三步:启动 + 设置开机自启

# 启动redis systemctl start redis # 开机自动启动 systemctl enable redis

第四步:验证是否启动成功

redis-cli

vi /etc/redis.conf

# 修改三项: # bind 127.0.0.1 前面加#注释 # protected-mode yes → protected-mode no # 新增 requirepass 123456

#5. 重启生效 systemctl restart redis

#6. 防火墙开放端口 firewall-cmd --add-port=6379/tcp --permanent firewall-cmd --reload

#7. 验证 redis-cli -a 123456

进去后输入ping,返回PONG就代表 redis 正常运行。 按exit退出 redis 客户端。

方法二:

1. 安装编译依赖

gcc yum install -y gcc tcl

#2. 下载redis源码包(也可以本地下载好,上传到linux) wget https://download.redis.io/releases/redis-6.2.6.tar.gz

#3. 解压 tar -zxvf redis-6.2.6.tar.gz

#4. 进入源码目录 cd redis-6.2.6

#5. 编译 make

#6. 安装到/usr/local/redis make install PREFIX=/usr/local/redis

#7. 复制配置文件 cp redis.conf /usr/local/redis/bin/

#8. 修改配置文件 vi /usr/local/redis/bin/redis.conf # bind 127.0.0.1 注释 # protected-mode yes → no # requirepass 123456 # daemonize yes 打开后台运行

#9. 启动redis cd /usr/local/redis/bin ./redis-server redis.conf

#10. 防火墙放行端口 firewall-cmd --add-port=6379/tcp --permanent firewall-cmd --reload #11. 连接测试 ./redis-cli -a 123456

数据结构:

通用命令:

keys * # 查看所有key,生产禁止!全库扫描 exists key del key expire key 秒 # 设置过期时间 ttl key # 查看剩余过期时间,-1永久,-2已过期 persist key # 取消过期 type key # 查看key的数据类型 rename key newkey

Redis的String型命令:

# 存值 SET name jack

# 取值 GET name

# 不存在才存(不覆盖) SETNX lock 1

# 存值 + 设置过期时间(秒) SET code 666666 EX 300

# 同时存多个 MSET k1 v1 k2 v2

# 同时取多个 MGET k1 k2

# 数字+1 INCR count

# 设置过期时间 EXPIRE name 60

# 查看剩余过期时间 TTL name

# 删除key DEL name

# 判断key是否存在 EXISTS name

List集合命令:

特点:双向列表,可重复,有序

# 左侧插入(头插) lpush key v1 v2 v3 # 右侧插入(尾插) rpush key v1 v2 v3 # 左侧弹出元素 lpop key # 右侧弹出元素 rpop key # 根据索引查看元素,start=0,end=-1代表全部 lrange key start end # 根据索引获取元素 lindex key index # 获取列表长度 llen key # 删除指定值,count>0从头删count个;count<0从尾删;count=0删除全部匹配值 lrem key count value # 保留区间内元素,其余删掉 ltrim key start end # 修改指定索引位置的值 lset key index value

储存结构图:

左右读写快,中间操作慢;有序可以重复

Set集合列表:

无序,元素唯一,不可重复

# 添加元素 sadd key m1 m2 m3 # 获取集合所有元素 smembers key # 判断元素是否存在 sismember key member # 删除元素 srem key m1 m2 # 随机弹出一个元素 spop key # 获取集合元素总数 scard key # 集合交集:同时存在两个集合里的元素 sinter set1 set2 # 集合并集 sunion set1 set2 # 集合差集(set1有,set2没有) sdiff set1 set2

储存结构图:

user:tag ────> { "java" , "redis" , "mysql" } key 元素不重复,无固定顺序

元素去重,支持并集,交集的运算

Hash:

# 设置字段 hset key field value # 批量设置多个字段 hmset key f1 v1 f2 v2 # 获取单个字段 hget key field # 获取多个字段 hmget key f1 f2 # 获取该hash下【所有field和value】 hgetall key # 获取所有field名称 hkeys key # 获取所有value值 hvals key # 判断field是否存在 hexists key field # 删除hash中的field hdel key f1 f2 # 获取hash里面field的数量 hlen key # 字段数字自增 hincrby key field 增量

存储结构图:

user:1001 ───> { name:"张三", age:20, sex:"男" } key field1:value1, field2:value2

适合储存对象,单独修改某一个属性;

zset集合:

元素唯一,每个元素带分数,按分数从小到大排序(默认)

# 添加成员,score在前,member在后 zadd key score1 member1 score2 member2 # 按score升序查询,start end,-1全部;WITHSCORES 同时返回分数 zrange key start end [WITHSCORES] # 按score降序查询 zrevrange key start end [WITHSCORES] # 根据分数范围查询 zrangebyscore key min max [WITHSCORES] # 删除成员 zrem key member1 member2 # 获取元素总数 zcard key # 获取某个member对应的分数 zscore key member # 查询member的排名(升序,从0开始) zrank key member # 查询member的排名(降序) zrevrank key member # 给指定成员分数增加增量 zincrby key increment member # 删除指定分数区间的元素 zremrangebyscore key min max

储存结构图:

rank:game ───> [ (score:90, member:"小明"), (score:80, member:"小红") ] key 成员唯一,根据score自动排序

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询