Redis学习笔记

安装

命令安装

Ubuntu

安装

1
sudo apt install redis-server

CentOS

安装

1
2
3
yum install epel-release
yum install redis
sudo service redis start

安装包安装

Ubuntu

安装

1
2
3
4
5
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar -zxvf redis-4.0.0.tar.gz
cd redis-4.0.0/
sudo make
sudo make install

CentOS

安装

1
2
3
4
5
6
7
8
9
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzf redis-2.8.17.tar.gz
cd /usr/local/src/redis-2.8.17/
make
make install
vim redis.conf 
./src/redis-server redis.conf 
sudo netstat -plutn | grep 6379
redis-cli

管理

服务管理

启动

1
sudo systemctl start redis-server

重启

1
sudo systemctl restart redis-server

停止

1
sudo systemctl stop redis-server

查看状态

1
sudo systemctl status redis-server

启动

后台运行

首次

1
/usr/local/src/redis/redis-4.0.11/src/redis-server ../redis.conf&

非首次

1
/usr/local/src/redis/redis-4.0.11/src/redis-server&

进入

1
2
3
/usr/local/src/redis/redis-4.0.11/src/redis-cli
# 需要密码
/usr/local/src/redis/redis-4.0.11/src/redis-cli -p 6379 -a redisPassword!

命令设置密码

1
127.0.0.1:6379>config set requirepass redisPassword!

配置文件设置密码

1
2
3
vim redis.conf
:348 #348行
requirepass redisPassword! #修改保存重启

查询密码

1
127.0.0.1:6379>config get requirepass

认证密码

1
127.0.0.1:6379> auth redisPassword!

登录

1
redis-cli -p 6379 -a redisPassword!

查看

1
2
3
4
## 查看是否已经自动启动
ps -aux | grep redis
## 查看是否已经监听端口
netstat -nlt | grep 6379

修改配置文件

1
vim /etc/redis/redis.conf

无密码登录

1
redis-cli

有密码登录

1
redis-cli -a root -h yibuwulianwang.com

常用命令

查看所有的key列表

1
127.0.0.1:6379>keys *

增加一条记录key1

1
127.0.0.1:6379>set key1 "hello"

打印记录

1
127.0.0.1:6379>get key1

增加一条数字记录key2

1
127.0.0.1:6379>set key2 1

让值(数字)自增

1
127.0.0.1:6379>INCR key2

增加一个列表记录key3

1
127.0.0.1:6379>LPUSH key3 a

从左边插入列表

1
127.0.0.1:6379>LPUSH key3 b

从右边插入列表

1
127.0.0.1:6379>RPUSH key3 c

打印列表记录,按从左到右的顺序

1
127.0.0.1:6379>LRANGE key3 0 3

增加一个哈希记表录key4

1
127.0.0.1:6379>HSET key4 name "John Smith"

在哈希表中插入,email的Key和Value的值

1
127.0.0.1:6379>HSET key4 email "abc@gmail.com"

打印哈希表中,name为key的值

1
127.0.0.1:6379>HGET key4 name

打印整个哈希表

1
127.0.0.1:6379>HGETALL key4

增加一条哈希表记录key5,一次插入多个Key和value的值

1
127.0.0.1:6379>HMSET key5 username antirez password P1pp0 age 3

打印哈希表中,username和age为key的值

1
127.0.0.1:6379>HMGET key5 username age

打印完整的哈希表记录

1
127.0.0.1:6379>HGETALL key5

查看所有的key列表

1
127.0.0.1:6379>127.0.0.1:6379>keys *

删除key1,key5

1
127.0.0.1:6379>del key1

数据类型

类型 简介 特性 可存储的值 操作 场景
String 字符串,二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M 字符串,整,浮点数 1. 对整个字符串或者字符串中的一部分执行操作,2. 对整数或浮点数执行自增或自减操作 缓存、限流、计算器、分布式锁、分布式session
Hash 字典,键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) 包含键对值的无序散列表 1. 添加,获取,移除单个键对值;2. 获取所有键对值;3. 检查某个键对值是否存在 存储、读取、修改用户信息、用户主页访问量、组合查询
List 列表,链表(双向链表) 增删快,提供了操作某一段元素的API 链表 1. 从两端压入或者弹出元素;2. 读取多个或者单个元素进行修剪;3. 只保留一个范围内的元素 最新消息排行等功能(比如朋友圈的时间线) 、消息队列、时间轴
Set 集合,哈希表实现,元素不重复 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 无序集合 1. 添加,获取,移除单个元素;2. 检查一个元素是否存在与集合中;3.计算交集,并集,差集;4. 从集合里面随机获取元素 共同好友 、利用唯一性,统计访问网站的所有独立ip 、好友推荐时,根据tag求交集,大于某个阈值就可以推荐,赞,踩,标签,好友关系
ZSet Sorted Set(有序集合),将Set中的元素增加一个权重参数score,元素按score有序排列 数据插入集合时,已经进行天然排序 有序集合 1. 添加,获取,移除单个元素;2. 根据分值范围或成员来获取元素;3. 计算一个键的排名 排行榜 、带权重的消息队列

监控中心

redis-monitor:使用Python2开发,默认端口是9527

安装

1
pip install redis-monitor

初始化

1
redis-monitor init

后台运行

1
nohup redis-monitor start > redis-monitor-2018-12-15.log &

参考文献

在Ubuntu中安装Redis

今日诗词

作者信息