Redis五种数据类型的基本使用及使用场景

Centos7安装redis

  1. 下载fedora的epel仓库
yum install epel-release -y
  1. 安装redis
yum install redis -y
  1. 启动redis服务
systemctl start redis
  1. 查看redis状态
systemctl status redis
  1. 停止redis服务
systemctl stop redis
  1. 重启redis服务
systemctl restart redis
  1. 查看redis进程
ps -ef | grep redis
  1. 设置redis开机自启动
systemctl enable redis

String数据类型

String基本使用

set命令给key设置value

127.0.0.1:6379> set name buddha
OK

del命令删除key-value

127.0.0.1:6379> del name
(integer) 1

set命令覆盖之前操作

127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> set name buddha
OK
127.0.0.1:6379> get name
"buddha"

get命令取值,不存在返回nil

127.0.0.1:6379> get name
"buddha"
127.0.0.1:6379> get age
(nil)
  1. getset

获取key值后给key赋值

127.0.0.1:6379> getset age 18
(nil)
127.0.0.1:6379> get age
"18"
  1. incr

累加1

127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
  1. decr

递减1

127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> get num
"10"
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> get num
"9"
  1. incrby

按照x值累加

127.0.0.1:6379> incrby num 2
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> incrby num 2
(integer) 4
127.0.0.1:6379> get num
"4"
  1. decrby

按照x值递减

127.0.0.1:6379> decrby num 2
(integer) -2
127.0.0.1:6379> decrby num 2
(integer) -4
127.0.0.1:6379> get num
"-4"
  1. append

在key的value后面追加

127.0.0.1:6379> set num 0
OK
127.0.0.1:6379> append num 2
(integer) 2
127.0.0.1:6379> get num
"02"
127.0.0.1:6379> append num 2
(integer) 3
127.0.0.1:6379> get num
"022"
  1. setex

给key设置过期时间

127.0.0.1:6379> setex code 60 424119
OK
127.0.0.1:6379> get code
"424119"
127.0.0.1:6379> get code
(nil)

String使用场景

  • 数据缓存
  • 网站文章总数
  • 商品总数
  • 订单总数
  • 计数器
  • 粉丝数
  • 关注人数
  • 验证码
  • token存储

Hash数据类型

Hash基本使用

  1. hset和hget

设置x对象键值对和获取x对象键值对的值

127.0.0.1:6379> hset zs name zhangsan
(integer) 1
127.0.0.1:6379> hset zs age 20
(integer) 1
127.0.0.1:6379> hset zs height 180
(integer) 1
127.0.0.1:6379> hset zs sex 1
(integer) 1
127.0.0.1:6379> hget zs name
"zhangsan"
127.0.0.1:6379> hget zs age
"20"
127.0.0.1:6379> hget zs height
"180"
127.0.0.1:6379> hget zs sex
"1"
  1. hmset和hmget

设置x对象多个键值对和获取x对象多个键值对的值

127.0.0.1:6379> hmset ls name lisi age 24 height 178 sex 1
OK
127.0.0.1:6379> hmget ls name age height sex
1) "lisi"
2) "24"
3) "178"
4) "1"
  1. hkeys和hvals

获取x对象所有键和获取x对象所有值

127.0.0.1:6379> hkeys ls
1) "name"
2) "age"
3) "height"
4) "sex"
127.0.0.1:6379> hvals ls
1) "lisi"
2) "24"
3) "178"
4) "1"

Hash使用场景

  • 数据库整张表放到redis hash里面

List数据类型

List基本使用

  1. lpush和lpop

左边入队和左边出队

127.0.0.1:6379> lpush list a b c
(integer) 3
127.0.0.1:6379> lpop list
"c"
  1. rpush和rpop

右边入队和右边出队

127.0.0.1:6379> rpush list 1 2 3
(integer) 5
127.0.0.1:6379> rpop list
"3"
  1. lrange

查看列表

127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "a"
3) "1"
4) "2"
  1. llen

列表元素个数

127.0.0.1:6379> llen list
(integer) 4

List使用场景

  • 秒杀
  • 消息

Set数据类型

Set基本使用

  1. sadd和smembers

添加元素和查询元素

127.0.0.1:6379> sadd group_01 zs ls we mz
(integer) 4
127.0.0.1:6379> sadd group_02 zs ls xc xq
(integer) 4
127.0.0.1:6379> smembers group_01
1) "mz"
2) "we"
3) "zs"
4) "ls"
127.0.0.1:6379> smembers group_02
1) "xc"
2) "zs"
3) "xq"
4) "ls"
  1. sdiff

差集

127.0.0.1:6379> sdiff group_01 group_02
1) "mz"
2) "we"
127.0.0.1:6379> sdiff group_02 group_01
1) "xc"
2) "xq"
  1. sinter

交集

127.0.0.1:6379> sinter group_01 group_02
1) "zs"
2) "ls"
  1. sunion

并集

127.0.0.1:6379> sunion group_01 group_02
1) "we"
2) "xc"
3) "mz"
4) "zs"
5) "ls"
6) "xq"
  1. scard

查看集合元素个数

127.0.0.1:6379> scard group_01
(integer) 4
127.0.0.1:6379> scard group_02
(integer) 4
  1. srandmember

随机提取元素

127.0.0.1:6379> srandmember group_01
"mz"
127.0.0.1:6379> srandmember group_01
"ls"
  1. srem

删除集合元素

127.0.0.1:6379> srem group_01 we
(integer) 1

Set使用场景

  • 唯一性数据

sorted-set数据类型

sorted-set基本使用

  1. zadd

添加元素

127.0.0.1:6379> zadd sorted 85 xiaoming
(integer) 1
127.0.0.1:6379> zadd sorted 88 xiaofang 90 xiaocheng
(integer) 2
  1. zscore

获取x元素

127.0.0.1:6379> zscore sorted xiaoming
"85"
  1. zcard

获取元素个数

127.0.0.1:6379> zcard sorted
(integer) 3
  1. zrange

范围查询,由小到大

127.0.0.1:6379> zrange sorted 0 -1
1) "xiaoming"
2) "xiaofang"
3) "xiaocheng"
  1. zrevrange

范围查询,由大到小

127.0.0.1:6379> zrangebyscore sorted 88 100 withscores
1) "xiaofang"
2) "88"
3) "xiaocheng"
4) "90"

sorted-set使用场景

  • 唯一性数据+排序

Redis持久化

持久化,就是防止redis在内存中出现意外丢失了数据,想恢复回去做的备份。

  1. 找到redis.conf配置文件
[root@localhost ~]# systemctl status redis

● redis.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis.service;
[root@localhost ~]# cat /usr/lib/systemd/system/redis.service

[Service]
ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
  1. 持久化文件的查找
[root@localhost ~]# find / -name dump.rdb
/var/lib/redis/dump.rdb

[root@localhost ~]# find / -name appendonly.aof
/var/lib/redis/appendonly.aof
  1. aof持久化文件修复
redis-check-aof --fix appendonly.aof
  1. 定时任务定时备份rdb和aof文件,以防不时之需
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员buddha

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

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

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

打赏作者

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

抵扣说明:

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

余额充值