Redis---安装、数据类型(String、List、Hash、Set、Zset)、主从配置、数据持久化、哨兵、集群

Redis—安装、数据类型(String、List、Hash、Set、Zset)、主从配置、数据持久化、哨兵、集群

nosql: not only sql

安装

  • 可以通过yum安装,要先配置epel源

    yum install -y redis
    
  • 可以编译安装

    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    tar -xf redis-5.0.5.tar.gz
    cd redis-5.0.5/
    make
    

redis可执行文件

redis-benchmark # 性能测试
redis-check-rdb # 检查修复aof文件
redis-sentinel # 检查修复rdb文件
redis-trib.rb # redis的客户端
redis-check-aof # redis的集群
redis-cli # redis的服务端
redis-server # 集群管理

redis命令

# 命令不区分大小写
# 启动 默认端口6379
[root@localhost redis-5.0.5]#./src/redis-server
# 测试 -p是静默模式
[root@localhost redis-5.0.5]#./src/redis-benchmark -p
# 连接
[root@localhost redis-5.0.5]#./src/redis-cli
-h iIP地址
-p 端口
-s 套接字
-a 密码
-n 数据库的数量
--help 帮助信息
# 命令相关
# 测试redis是否连通,返回值是pong
ping
# 获取全部信息
info
# 打印内容,测试时使用
echo message
# 退出
quit
# 切换redis的库,共16个,0~15
select 0~15

数据类型

  • string
  • hash
  • list
  • set
  • zset
[root@localhost ~]#cd mydata/redis-5.0.5/
[root@localhost redis-5.0.5]#./src/redis-cli
127.0.0.1:6379> SELECT 2
OK
127.0.0.1:6379[2]> set alex dsb
OK
127.0.0.1:6379[2]> get alex
"dsb"
127.0.0.1:6379[2]> del alex
(integer) 1
127.0.0.1:6379[2]> get aex
(nil)
127.0.0.1:6379[2]> 
# del 后可跟多个key 不存在就忽略
# exists 判断key是否存在 不存在0 存在1
# expire alex 3     3秒后自动清除
# TTL key   看key的剩余存活时间
# keys * 匹配所有  查找所有匹配的key
# keys a*
# keys a??
# move alex 1  移动key到另一个库里  move key db
# pexpire key millseconds  过期毫秒时间 
# Pttl key 查看剩余时间
# randomkey 随机获取一个key 不删除
# rename key newkey  改名
# type key   查看key存储的value的类型

String

set

设置key value

key 存在 覆盖 不存在 新建 、

EX seconds | PX millseconds | NX | XX

NX 键不存在,新建,否则,返回nil

XX 键存在才能操作

mset

mset key value key value key value

可以设置多个,覆盖已存在的key

get

获取对应的value,只能获取一个

mget

批量获取key的value

getset

给指定的key设置新的value,并返回原来的value

strlen

strlen key

返回value的长度

append

append key value

存在 追加 不存在 新建

incr

将key中存在的数加1,只能对数字有效

decr

减一

incrby

加指定的值

decrby

list

LPUSH

入栈元素 listname可以是rpush创建的 元素值可重复

lpush listname value1 value2 …

lrange

查看元素

lrange listname start end

插入顺序与栈一样

lpop

lpop listname

出栈元素

rpush

入队列 listname可以是lpush创建的 元素值可重复

rpush listname value1 value2 …

rpop

rpop listname

出队列元素

rpushx

将value插入 队列式

rpushx value

lpushx

将value插入 栈式

lpushx value

lindex

取索引 从表头开始数

lindex listname value

linsert

将value插入到listname的元素value1的前边 不存在则不操作

linsert listname before value1 value

将value插入到key的元素value1的后边

linsert listname aftervalue1 value

llen

获取列表的长度

llen listname

lrem

删除列表中的value

  • num > 0:从表头开始删除指定个数的value
  • num = 0:所有的value都删掉
  • num < 0:从表尾开始删除指定个数的value

lrem listname num value

lset

用value替换指定索引位置的value,如果所有超出范围直接报错

lset listname 3 value

ltrim

列表的切片

ltrim listname start end

hash

{‘db’:{‘redis’:‘redis.conf’,‘mysql’:‘mysql.cnf’}}

hset

hset key field value

exmple:

hset db redis redis.conf

hest db mysql mysql.cnf

hlen

key的长度

hlen key

hget

hget key field

exmple:

hget db redis

hegtall

获取所有的键和值

hgetall key

hmset

批量增加键值对

hmset ac 1 1 2 2 3 3 4 4

hmget

批量获取键对应的值

hmget ac 1 2 3 4

hsetnx

给指定的hash增加键值对

hsetnx ac 5 5

hkeys

获取hash表中所有的field

hkeys db

hvals

hvals db

hdel

删除

hdel db redis mysql

hexists

判断hash表中的field是否存在,存在1,否则0

hexists key field

hincrby

set

sadd

给集合添加值,自动去重

sadd s22 dazhuang xiaozhuang …

smembers

查看集合中的成员

smembers s22

scard

获取集合元素的个数

scard s22

sdiff

显示前面存在,后面集合不存在的元素,差集

sdiff s22 s33

sinter

交集

sinter s22 s33

sunion

并集

sunion s22 s33

sismember

判断元素是否在集合中,在则为1,否则为0

sismember s22 dazhuang

smove

将value从source集合移动到destination集合中,source不存在啥也不操作,destination不存在,创建

somve source destination value

spop

spop setname count

srandmember

randomly get some values

zset

把set中的命令前边的s换成z

发布订阅

多人订阅,多人发布。

subscribe

订阅一个或者多个频道

subscribe channel1 channel2 …

publish

给指定的频道发送消息

publish channel msg

psubscribe

psubscribe patter.*

主从配置

数据持久化

哨兵

集群

猜你喜欢

转载自blog.csdn.net/qq_31910669/article/details/111832210
今日推荐