redis 入门操作一看就懂

本文介绍Redis的高可扩展性、分布式计算及低成本优势,对比MySQL,强调其减少查询、简化API的特点。涵盖排行榜、秒杀、分布式锁及消息队列等应用场景,详述安装、配置与管理步骤,深入探讨字符串、列表、集合、有序集合等数据类型操作。
redis简介
  • 优点
    1.⾼可扩展性
    2.分布式计算
    3.低成本
    4.架构的灵活性,半结构化数据 没有复杂的关系
  • 缺点
    1.没有标准化
    2.有限的查询功能(到⽬前为⽌)
  • 与mysql的区别
    ⼤⼤减少了查询数量,提⾼了效率
    redis的API更加⼈性化,再也不需要构建SQL语句,节省了SQL的解析时间
  • redis经常应用场所
    1.排⾏榜 - 很多⽹站都有排⾏榜功能,利⽤Redis中的列表和有序集合可以⾮常
    ⽅便的构造各种排⾏榜系统。
    2.商品秒杀/投票点赞 - Redis提供了对计数操作的⽀持,⽹站上常⻅的秒杀、点
    赞等功能都可以利⽤Redis的计数器通过+1或-1的操作来实现,从⽽避免了使
    ⽤关系型数据的 update 操作。
    3.分布式锁 - 利⽤Redis可以跨多台服务器实现分布式锁(类似于线程锁,但是
    能够被多台机器上的多个线程或进程共享)的功能,⽤于实现⼀个阻塞式操
    作。
    4.消息队列 - 消息队列和⾼速缓存⼀样,是⼀个⼤型⽹站不可缺少的基础服务,
    可以实现业务解耦和⾮实时业务削峰等特性,这些我们都会在后⾯的项⽬中为
    ⼤家展示。
安装redis
sudo apt install redis-server
安装完成后,Redis服务器会⾃动启动,我们检查Redis服务器程序
ps -aux|grep redis
或者
netstat -nlt | grep 6379
#看⻅ port 6379 就成功启动了redis服务
  • redis-cli客户端使⽤⽅式
**redis-cli
-p #端⼝
-h #主机
链接上 
redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> #ping之后 pong来了就是成功了
离开客户端请输⼊quit
服务管理
启动/停⽌/重启redis有三种⽅式
1) systemctl start/stop/restart redis-server.service
2) service redis-server start|restart|stop
3) cd /etc/init.d
 ./redis-server start/stop/restart
4)redis-server /root/redis-5.0.4/redis.conf #通过指定的配置⽂件来修改
Redis的配置。**
  • redis的配置⽂件
配置⽂件在/etc/redis/redis.conf
sudo vim /etc/redis/redis.conf
requirepass 你的密码 # 服务器远程连接密码
bind 127.0.0.1 # 绑定ip
port 5379 # 指定端⼝
daemonize yes # 是否以守护进程执⾏,如果以守护进程执⾏,不会在命令⾏下阻塞
dbfilename dump.rdb #数据⽂件
dir /var/lib/redis #数据⽂件存储路径
#如果指定了密码,启⽤客户端时需要加上-a 密码
redis-cli -a 密码
redis数据类型
  • string
-- 设置键
hset key field value #设置key所指对象的指定属性的值
hmset key field value [field value] #设置key所指对象的多
个属性值
hsetnx key field value #当field字段不存在时 设置key所指对
象的field属性值
hset person name '⼆狗⼦'
hmset person age 20 sex '男'
hsetnx person maried '未婚'
-- 获取键
 hget key field #获取key指定的对象的属性值
 hmget key field [field] #获取key指定对象的多个属性值
 hgetall key #获取key所指对象的所有属性的名称和值
 hkeys key #获取key所指对象的所有属性名
 hvals key #获取key所指对象是的所有属性值
 hlen key #获取key所指对象的属性个数
-- 其他操作
hincrby key field increment #为key所指对象的指定字段的整
数值加上increment
hincrbyfloat key field increment #为key所指对象的指定字段的
实数值加上increment
hexists key field #判断当前的字段是否存在在(在返回1 否则返回
0)
hdel key field [field] #删除字段和值
  • list
-- 添加数据
lpush key value [value] #头部插⼊数据
lpushx key value #如果列表存在则在列表头部插⼊数据
rpush key value [value] #在列表尾部添加数据
rpushx key value #如果列表存在,则在尾部添加数据
linsert key before|after value value #在指定值前或后插⼊数
据
lset key index value #设定指定索引元素的值
索引的值从左边开始,向右增加,左边第⼀个是0,从右边向左索引编号
为:-1 -2...
-- 获取数据
lpop key #左侧出队并返回出队元素
rpop key #右侧出队并返回出队元素
lindex key index #返回指定索引的值
lrange key start end #返回存储列表中的指定范围的元素
 [start,end]
lrem key count value #从列表⾥移除前 count 次出现的值为
value 的元素
 count > 0: 从头往尾移除值为 value 的元素。
 count < 0: 从尾往头移除值为 value 的元素。
 count = 0: 移除所有值为 value 的元素。
 -- 其他操作
llen key #获取列表⻓度
ltrim key start stop #裁剪列表 保留start到stop之间的元素,
其它都删除
 ltrime mylist -3 -1 #从索引为-3到-2的保留, 以外的全部删除
  • set 无序集合
-- 添加元素
sadd key member [member]  #添加多个元素
-- 获取元素
 smembers key #获取集合中所有的元素
 scard key #返回集合元素的个数
 srandmember key [count] #返回集合中随机元素的值,可以返回count个
-- 其他操作
spop key [count] #移除集合中随机的count个元素,并返回
srem key member1 [member2] #移除集合中 ⼀个或者 多个 成员
sismember key member #判断元素是否在集合中 存在返回1 不在返回0
-- 集合操作
求多个集合的交集: sinter key [key...]
求多个集合的差集 (注意⽐较顺序):sdiff key [key...]
求 多个集合的并集: sunion key [key....]
  • zset 有序集合
-- 添加元素
zadd key score member [score member] #添加多个元素
zincrby key increment member #对指定的成员增加权重
increment
-- 获取元素
zrange key start end #返回指定范围的元素
zcard key #返回元素的个数
zcount key min max #返回有序集合中权重在min和max之间的元素的
个数
zscore key member #返回有序集合中 member(元素) 的权重
(score)
zrange key start end withscores #返回当前key中 所有的权重
(score)和元素(member)
redis数据库切换
redis默认带有16个数据库,编号从0-15。进⼊redis后默认数据库是0,可以使⽤
select num进⾏切换
客户端不显示中⽂的处理:打开客户端的时候添加参数:--raw
redis-cli --raw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值