Redis
安装
了解Redis环境的搭建
下载
-
当前redis最新版本是4.0,它是一个测试版本,稳定版本是3.2版本。
-
当前ubuntu虚拟机中已经安装好了redis,以下步骤可以跳过 最新稳定版本下载链接:http://download.redis.io/releases/redis-3.2.8.tar.gz
-
step1:下载
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
-
step2:解压
tar -zxvf redis-3.2.8.tar.gz
step3:复制,放到usr/local目录下
sudo mv ./redis-3.2.8 /usr/local/redis/
-
step4:进入redis目录录
cd /usr/local/redis/
-
step5:生成
sudo make
-
step6:测试,这段运行时间会较长
sudo make test
-
step7:安装,将redis的命令安装到/usr/local/bin/目录
sudo make install
-
step8:安装完成后,我们进入目录/usr/local/bin中查看
cd /usr/local/bin ls -all
redis-server redis服务器 redis-cli redis命令行客户端 redis-benchmark redis性能测试工具 redis-check-aof AOF文件修复工具 redis-check-rdb RDB文件检索工具
-
step9:配置⽂件,移动到/etc/目录下
-
配置⽂件⽬录为/usr/local/redis/redis.conf
sudo cp /usr/local/redis/redis.conf /etc/redis/
-
配置
学习目标
- 了解Redis的配置
配置
-
Redis的配置信息在/etc/redis/redis.conf下。
-
查看
sudo vi /etc/redis/redis.conf
核心配置选项
-
绑定ip:如果需要远程访问,可将此行注释,或绑定多个真实ip
bind 127.0.0.1
端⼝,默认为6379
port 6379
-
是否以守护进程运行
- 如果以守护进程运行,则不会在命令行阻塞,类似于服务
- 如果以非守护进程运行,则当前终端被阻塞
- 设置为yes表示守护进程,设置为no表示非守护进程
- 推荐设置为yes
daemonize yes
-
数据文件
daemonize dump.rdb
-
数据文件存储路径
dir /var/lib/redis
-
日志文件
logfile /var/log/redis/redis-server.log
-
数据库,默认有16个
database 16
-
主从赋值,类似于双机备份
slaveof
服务器和客户端命令
服务器端
-
服务器端的命令为redis-server
-
可以使用–help查看帮助文档
redis-server --help
-
推荐使用服务的方式管理redis服务
-
启动
sudo service redis start
-
停止
sudo service redis stop
-
重启
sudo service redis restart
-
个人习惯
ps -ef | grepredis 查看redis服务器进程 sudo kill -9 pid 杀死redis服务器 sudo redis-server /etc/redis/redis.conf 指定加载的配置文件
客户端
-
客户端的命令为
redis-cli
-
可以使用-help查看帮助文档
redis-cli --help
-
连接redis
redis-cli
-
运行测试命令
ping
-
切换数据库
-
数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select n
数据操作
-
redis是key-value的数据结构,每一条数据都是一个键值对
-
键的类型是字符串
-
注意:键不能重复
-
值为类型分为五种:
- 字符串string
- 哈希hash
- 列表list
- 集合set
- 有序集合zset
数据操作行为
- 保存
- 修改
- 获取
- 删除
点击查看命令中心的文档http://redis.cn/commands.html
string
string类型
- 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。redis数据库默认的端口号为:6379
redis数据库操作
- redis数据库默认有16个数据库[0-15],默认进入的是0库
- select 数据库名: 切换数据库
- keys * : 查看所有的键
- expire 键 秒数 : 设置过期时间
- persist 键 : 移除过期时间
- del 键 : 指定键进行删除.返回值代表删除的个数
- flushdb : 清空当前数据库中的所有的内容
- flushall : 清空所有数据库的所有的内容
字符串的操作
- set key value :设置一个键值对,返回ok代表设置成功,如果key存在,相当于修改
- get key : 获取对应的键的值
- setnx key value : 设置一个键值对,如果键存在,不会覆盖,不存在则设置
- setex key 秒数 : 设置一个指定有效的键值对
- setrange key 偏移量(索引) value : 替换,从偏移量的位置开始替换,返回值是替换之后的字符串的长度
- mset key1 value1 key2 value2 … : 批量设置键值对
- mget key1 value1 key2 value2 … : 批量获取键值对
- msetnx key1 value1 key2 value2 … : 批量设置键值对,如果键存在不会覆盖,不存在则创建
- getset key new_value : 获取key的原值,设置新值,返回的是原值
- getrange key start end : 获取指定范围(索引范围[start,end])的内容
- incr key : 给对应的键的值++,就是+1
- incrby key value : 给对应的值,加上指定的数
- decr key value : 给对应键的值–,就是-1
- decrby key value : 给指定的键追加指定的值,返回值是增加后的总长度
- strlen key : 查看字符串的长度
redis数据库的列表操作指令
redis数据库的列表是双向链表结构,基于这种结构,redis数据库的列表可以实现栈和队列
- lpush key value : 在列表头部插入元素,返回值代表添加后的列表的长度
- lrange key start stop : 查看列表中指定范围的元素
- rpush key value : 在列表的尾部插入元素
- lpop key : 从头部弹出一个元素,返回值是删除的元素
- rpop key :从尾部弹出一个元素,返回值是删除的元素
- linsert key BEFORE|AFTER old_value new_value : 在原有元素之前或是之后插入一个元素,返回值是插入之后的列表的长度
- lset key index new_value : 修改指定位置上的元素
- lrem key count 值 : 从key中删除指定数量的元素
- count > 0 代表头部开始删除
- count = 0 代表全部删除
- count < 0 代表从尾部删除
- ltrim 键 索引 : 查看指定索引上的元素
- llen 键 : 查看列表的长度
- rpoplpush key1 key2 : 从key1的尾部删除元素,将删除的元素添加到key2的头部,返回值是删除的元素
redis数据库中的无序集合
- sadd key member1 member2… : 向集合cherub多个元素,返回值是插入成功的元素数量
- smembers key : 查看集合中的元素数量
- srem key value1 value2 … : 指定成员进行删除,返回值是删除成功的的元素数量
- spop key [count] : 从集合中随机弹出count个元素,默认弹出1个,返回值是弹出的元素
- srandmember key [count] : 随机获取count个元素,默认取一个,返回值是获取的元素
- smove key1 key 2 value : 将key1中的value移动到key2中
- scard key : 查看集合长度
- sdiff key : 查看两个集合的差集
- sinter key1 key2 : 查看两个集合的子集
- sunion key1 key2 : 查看两个集合的并集
- sismember key value : 判断value是否在集合中存在,返回值1代表存在,0代表不存在