Redis数据类型和常用命令操作

 

分类:redis服务器搭建数据库
标签:数据类型集合数据类型redis数据redisredis操作

2020-04-02 04:28:46.0 阅读原文

redis是以set/get方式存储和获取数据的key-value存储系统 。

redis有五种数据类型:string、list、hash、set、zset。对于不同的数据类型,又不同的操作。

Redis常用操作

string类型操作

SET key value [EX seconds] [PX milliseconds] [NX|XX]
GET key
MSET key value [key value ...]
MGET key [key ...]
SETEX key seconds value
SETNX key value # 常用来实现分布式锁
INCR key # 如果value时数值类型,则对value自增1,并返回
DECR key # 
INCRBY key increment
DECRBY key decrement

hash类型操作

HSET key field value
HGET key field
HMGET key field [field ...]
HMSET key field value [field value ...]
HDEL key filed [field ...]
HEXISTS key field
HGETALL key # 返回key下所有的feild和value
HINCRYBY key filed increment
HKEYS key # 返回key下所有的feild
HLEN key # 返回key下feild的数量
HVALS key # 返回key下所有的feild和value

list类型操作

LPUSH key value [value ...] # 将多个值依次插入到表头
LPUSHX key value # 存在时push
LPOP key # 移除后返回左边的值
LRANGE key start stop # 返回start和stop之间的元素
LLEN key # 返回list的长度
RPUSH key value [value ...]
RPUSHX key value
RPOP key
RPOPLPUSH source destination # 将source的尾元素弹出并插入到destination的头部,并返回该元素

set类型操作

SADD key number [member ...] 
SCARD key # 返回集合中元素的数量
SISMEMBER key member # 是否为此集合的成员
SMEMBERS key # 返回所有成员
SMOVE source desination member # 将member元素从source集合移动到destination集合
SPOP key [count] # 随机移除并返回集合中count个值
SRANDMEMBER key [count] # 同上,但不移除
SREM key member [member ...] # 移除集合中的多个元素
## 集合运算
SUNION key [key ...] # 多个集合的并集
SUNIONSTORE destination key [key ...] # 多个集合的并集并存储在destination中
SINTER key [key ...] # 交集
SINTERSTORE destination key [key ...] 
SDIFF key [key ...] # 差集
SDIFFSTORE destionation key [key ...]

zset类型操作

zset类型中的每个元素都有一个score

ZADD key score member [[score member] [score member] ...] # 添加 
ZCARD key # 返回个数
ZCOUNT key min max # 返回score在min到max之间的元素个数
ZREM key member [member ...] # 删除
ZRANGE key start stop [WITHSCORES]  # 返回score在start和stop之间的元素
ZRANK key mumber # 返回member的score排名
ZREMRANGEBYRANK key start stop # 根据排名删除
ZREMRANGEBYSCORE key min max # 根据score删除
## score运算
zincrby key -1 # 
## 集合运算

Redis的Key相关操作

EXISTS key 
DEL key [key ...]
EXPIRE key seconds # 设置key的鬼泣时间
KEYS pattern # 返回匹配的keys
PERSIST key # 移除key的过期时间(不过期)
RANDOMKEY # 随机返回一个key
RENAME key newkey # 重命名一个key
TYPE key # key中存储数据的类型(5种类型)
TTL key # 返回key的剩余生存时间(秒)
PTTL key # 返回key的剩余生存时间(毫秒)

Redis 发布订阅操作

PUBLISH channel message # 将信息发送到指定的频道。
SUBSCRIBE channel [channel ...] # 订阅给定的一个或多个频道的信息。
UNSUBSCRIBE [channel [channel ...]] # 退订

redis数据备份和恢复

1. dump : 手动执行或者配置save

SAVE # 备份
# 该命令将在 redis 安装目录中创建dump.rdb文件,将数据进行备份
BGSAVE # 后台备份
# 创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

# 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。

2. aof日志 :手动执行bgrewriteaof 或者配置

aof默认是关闭的,需要以下配置:

appendonly yes 
# appendfsync always
appendfsync everysec
# appendfsync no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 重启redis即可根据aof日志恢复

redis分布式高可用

每个节点如下配置:

port 7000   # 端口7000,7001,7002,与目录对应
bind 172.28.37.29 #默认ip为127.0.0.1,需要改为其他节点机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes   #redis后台运行
cluster-enabled yes  #开启集群
cluster-config-file nodes_7000.conf  #集群的配置,配置文件首次启动自动生成 7000,7001,7002  
cluster-node-timeout 8000   #请求超时,默认15秒,可自行设置
appendonly yes  #开启aof持久化模式,每次写操作请求都追加到appendonly.aof文件中
appendfsync always  #每次有写操作的时候都同步
logfile "/data/redis/logs/redis.log" #redis服务日志
pidfile /var/run/redis_7000.pid  #pidfile文件对应7000,7001,7002

启动时可用脚本:

# 启动脚本
for((i=0;i<3;i++)); 
do /usr/local/bin/redis-server /usr/local/redis/redis-cluster/700$i/redis.conf; 
done


分类:redis服务器搭建数据库
标签:数据类型集合数据类型redis数据redisredis操作

原文链接: Redis数据类型和常用命令操作 2020-04-02 04:28:46.0