redis 搭建及常用命令

发布于:2022-11-28 ⋅ 阅读:(480) ⋅ 点赞:(0)

redis简介和特点

 redis (remote(远程) dictionary(字典,键值对) server(服务器))

Redis 是一个开源(BSD许可)的, 内存中 的数据结构存储系统,它可以用作数据库(持久 化)、 缓存 和消息中间件(MQ message queue)。C语言编写。

特点:  

 速度快

支持持久化

RDB redis database):把内存中写入的数据按照配置策略,指定时间段内把数据保存磁 盘文件上。
AOF append of file): 把执行命令保存到磁盘上日志文件中,当数据需要恢复时,再次 读取日志文件,重新生成数据。
支持事务(原子性操作)
支持原子性操作,通过multi exec discard命令,支持事务。
事务的支持没有关系型数据库支持的好。

 支持多种语言

 几乎支持现在流行的所有语言。

 redis单机版搭建

 克隆redis1,修改IP,修改主机名称,xshell连接

主机名称:redis1, IP:192.168.xxx.31
修改主机名称:
        vim /etc/hostname
修改网卡:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
        :15 修改IP地址 192.168.XXX.31
重新启动:
reboot

 使用xshell进行连接

 下载安装包,解压,安装配置,启动redis

 使用xftp上传安装包到/root/software中

 创建目录,解压压缩包

mkdir /usr/redis
tar -xzvf /root/software/redis-5.0.5.tar.gz -C /usr/redis/

安装配置

因为C语言编写,所以 一定要先装C的编译器
ping www.baidu.com
yum -y install gcc-c++
使用的源码安装
cd /usr/redis/redis-5.0.5/
ls 发现没有configure 就需要自己指定安装目录
编译(从源文件中抽取指令过程)
make
安装
ls /usr/redis
make install PREFIX=/usr/redis
要使用PREFIX指定安装路径
ls /usr/redis 发现多了一个bin目录 说明安装成功

启动redis

非后台运行方式启动:
ls /usr/redis/bin/ 可以看到redis-server服务器启动脚本 redis-cli 客户端启动脚本
/usr/redis/bin/redis-server 启动服务端,发现独占一个窗口
服务端启动,窗口不能关闭。
新建redis1会话,使用客户端连接:
/usr/redis/bin/redis-cli 默认连接127.0.0.1 端口6379
ping 看到PONG 标识客户端连接成功
使用客户端关闭服务端:
shutdown 默认什么都不加 就是save 或者直接save 关闭数据库保存数据
set a 1 向 redis写入 a=1
keys * 查看redis中的数据
shutdown nosave 关闭服务器不保存数据
再次启动服务端:
/usr/redis/bin/redis-server
再次连接客户端:
/usr/redis/bin/redis-cli
keys * 什么都没有 刚执行的是关闭服务器不保存
再次写入数据
set a 1 向 redis写入 a=1
查看redis中的数据
keys *
关闭服务器保存数据
shutdown save
再次启动服务端:
/usr/redis/bin/redis-server
再次连接客户端:
/usr/redis/bin/redis-cli
keys * 发现a=1依然存在
服务器关闭后,使用exit 或者quit 退出

 后台运行方式启动

复制配置文件到bin下
cp /usr/redis/redis-5.0.5/redis.conf /usr/redis/bin/
修改配置文件
vim /usr/redis/bin/redis.conf
:136 daemonize yes
使用配置文件启动服务(脚本+参数启动):
/usr/redis/bin/redis-server /usr/redis/bin/redis.conf
回车启动,发现不再占用窗口
检查是否启动成功:
ps -ef |grep redis |grep -v grep
可以看到一个redis-server进程在运行,标识后台启动成功
在本窗口就可以使用redis客户端连接
/usr/redis/bin/redis-cli

 redis常用命令

 和connect有关的

ping 服务器 不加参数测试服务器是否连通 

 echo 回显输入的字符串

 quit 关闭客户端连接 退出 (有别于shutdown 不会关闭服务端)

 select 选择新数据库

和server有关的

 dbsize 返回当前数据里面keys的数量

shutdown 关闭redis服务进程  

flushdb 清空当前库  

flushall 清空所有库 

和keys有关的 

 keys 查找所有匹配给定模式的键 * 统配所有的

del 删除指定的key 一个或者多个 

expire 设置key的过期时间 

move 移动一个key到另一个库中 

rename 修改key的名称  

ttl 获取key有效时间(单位为秒) 

type 获取key存储类型  

exists 判断一个key是否存在  

5种数据类型及作用场景 

 Strings 字符串类型

以键值对方式存储数据,值的部分以字符串(string)存储。 

set: 单个设置字符串
get:单个获取字符串
mset:批量设置字符串
mget:批量获取字符串
incr:原子自增(针对整数内容的字符串)
decr:原子自减(针对整数内容的字符串)
setnx:键不存在的时候设置字符串,键已经存在时不能设置。场景,分布式锁。
set a 10 ex 20 nx :设置键值对a=10 过期时间 20s,当a不存在的时候可以设置成功
set a 10 px 2000 xx: 设置键值对a=10 过期时间2000ms,当a已经存在的时候才能设置成功

 hashs 散列类型(java-map集合)

以键值对方式设置数据,值的内容是hashs数据(键值对数据)
stu name=tom
stu age=20
stu sex=man

 常用命令:

hset: 设置单个键值对
hget 获取单个键对应的值
hmset: 批量设置键值对
hmget:批量获取键值对
hgetall:获取某个键的所有键值对数据
hdel:删除某个键值对数据
hkeys:获取所有的键
hvals:获取所有的值 hlen:获取键值对的个数
del 键:删除键数据

lists 列表类型(java-list集合)

 以键值对方式存储数据,值的部分是一个list列表。值允许重复。数据可以通过索引获取。

 常用命令:

(lpush rpush lpop rpop llen lindex )
lpush: 从左边添加数据
rpush:从右边添加数据
lpop:从左边弹出数据
rpop:从右边弹出数据
llen:返回列表长度
lindex:返回列表中指定索引位置的数据 list.get(3)。索引为-1,表示获取最后一个值。

sets 集合类型(java-set集合)

 以键值对方式存储数。值得部分是一个set集合。值没有次序,不允许重复。 

常用命令:
(sadd srem smembers sismember scard spop srandmember sinter sinterstore)
sadd: 以特定键添加一组set数据
srem:删除特定数据
smembers:返回set中得所有元素
sismember:测试set中是否存在某个值
scard:返回set中值得个数
spop:随机弹出一个值
srandmember:随机返回set中的值
sinter: 求两个set的交集
sintersstore:将两个set交集的结果,存储到另外一个set中

sorted sets 有序集合类型(java-set有序集合)

以键值对方式添加数据,值得部分是set,但是每个set元素都要指定一个分数(权重,小数)。不重复,按照权重排序。

常用命令:
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数(权重)。redis正是通过分数来为集
合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(scyore)却可以重复。
(zadd zrem zcard zcount zrangebyscore )
zadd :添加一组set数据。
zrem:删除一个数据
zcard:统计元素个数
zcount:统计某个范围(分数)得元素个数
zrangebysocre:返回指定分数范围得元素内容

地理空间(geospatial)

添加4个城市:
geoadd china 116.41667 39.91667 bj 121.43333 34.50000 sh 117.20000 39.13333
tj 113.65000 34.76667 zz 114.06667 22.61667 sz
返回两个城市的直线距离(默认单位为米,可以使用km)
geodist china zz sz
返回113.65 34.76经纬度为中心,800公里之内的城市
georadius china 113.65 34.76 800 km
返回指定城市的经纬度
geopos china sz zz
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到