目录
Centos7安装redis
- 下载fedora的epel仓库
yum install epel-release -y
- 安装redis
yum install redis -y
- 启动redis服务
systemctl start redis
- 查看redis状态
systemctl status redis
- 停止redis服务
systemctl stop redis
- 重启redis服务
systemctl restart redis
- 查看redis进程
ps -ef | grep redis
- 设置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)
- getset
获取key值后给key赋值
127.0.0.1:6379> getset age 18
(nil)
127.0.0.1:6379> get age
"18"
- 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"
- 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"
- 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"
- 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"
- 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"
- 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基本使用
- 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"
- 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"
- 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基本使用
- lpush和lpop
左边入队和左边出队
127.0.0.1:6379> lpush list a b c
(integer) 3
127.0.0.1:6379> lpop list
"c"
- rpush和rpop
右边入队和右边出队
127.0.0.1:6379> rpush list 1 2 3
(integer) 5
127.0.0.1:6379> rpop list
"3"
- lrange
查看列表
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "a"
3) "1"
4) "2"
- llen
列表元素个数
127.0.0.1:6379> llen list
(integer) 4
List使用场景
- 秒杀
- 消息
Set数据类型
Set基本使用
- 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"
- 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"
- sinter
交集
127.0.0.1:6379> sinter group_01 group_02
1) "zs"
2) "ls"
- sunion
并集
127.0.0.1:6379> sunion group_01 group_02
1) "we"
2) "xc"
3) "mz"
4) "zs"
5) "ls"
6) "xq"
- scard
查看集合元素个数
127.0.0.1:6379> scard group_01
(integer) 4
127.0.0.1:6379> scard group_02
(integer) 4
- srandmember
随机提取元素
127.0.0.1:6379> srandmember group_01
"mz"
127.0.0.1:6379> srandmember group_01
"ls"
- srem
删除集合元素
127.0.0.1:6379> srem group_01 we
(integer) 1
Set使用场景
- 唯一性数据
sorted-set数据类型
sorted-set基本使用
- 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
- zscore
获取x元素
127.0.0.1:6379> zscore sorted xiaoming
"85"
- zcard
获取元素个数
127.0.0.1:6379> zcard sorted
(integer) 3
- zrange
范围查询,由小到大
127.0.0.1:6379> zrange sorted 0 -1
1) "xiaoming"
2) "xiaofang"
3) "xiaocheng"
- zrevrange
范围查询,由大到小
127.0.0.1:6379> zrangebyscore sorted 88 100 withscores
1) "xiaofang"
2) "88"
3) "xiaocheng"
4) "90"
sorted-set使用场景
- 唯一性数据+排序
Redis持久化
持久化,就是防止redis在内存中出现意外丢失了数据,想恢复回去做的备份。
- 找到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
- 持久化文件的查找
[root@localhost ~]# find / -name dump.rdb
/var/lib/redis/dump.rdb
[root@localhost ~]# find / -name appendonly.aof
/var/lib/redis/appendonly.aof
- aof持久化文件修复
redis-check-aof --fix appendonly.aof
- 定时任务定时备份rdb和aof文件,以防不时之需