Redis由浅入深操作总结

redis:REmote DIctionary Server(远程字典服务器)

基本操作

select 切换数据库
Dbsize查看当前数据库的key的数量
keys * 查看所有key
flushdb 清空当前库所有key
flushall清空所有数据库所有key
统一密码管理,16个库都是同样密码

redis-server /myredis/redis.conf
redis-cli -p 6379

redis五大数据类型

string,key-value
hash
list
set
zset(sorted set)

常见数据类型操作命令

String
key
move k1 2,把k1移到2号库
expire key 秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key 查看你的key是什么类型

getrange/setrange
setex(set with expire)
setnx(set if not exist)
mset/mget/msetnx

List
Lpush list01 1 2 3 4 5
Rpush list02 1 2 3 4 5
lrange

lpop/rpop 出栈,推出
lindex ,下标获得元素
llen
lrem key 删n个value
ltrim key 开始index 结束index
rpoplpush 源列表 目的列表
字符串链表,left 、right都可以添加

Set
sadd/smembers/sismember
scard,获取集合里的元素个数
srem key value删除集合中元素
srandmember key某个整数随机出几个数
spop key随机出栈
smove key1 key2 在key1里某个值
sdiff/sinter /sunion

Hash
hset/hget/hmset/hmget/hgetall/hdel
hlen
hexists key
hkeys/hvals
hincrby/hincrbyfloat
hsetnx

Zset(sorted set)
zadd/zrange
zrangebyscore key 开始score 结束score
zrem key
zcard/zcount key
zrevrank key value
zrevrange
zrevrangebyscore

redis配置文件
config get requirepass
config set requirepass “123456”

auth 123456
ping
pong

LIMITS限制

maxclients
maxmemory
maxmemory-policy 内存策略
LRU最近最少使用
①volatile-lur :remove the key with an expire set using an LRU algorithm.
②allkeys-lru:remove any key according to the LRU algorithm.
③volatile-random:remove random expire
④allkeys-random:remove a random key,any key
⑤volatile-ttl:remove the key with the nearest expire time
⑥noevication :don’t expire at all
maxmemory-samples

snapshot
save seconds changes
save 900 1
sava 300 10
sava 60 10000
shoutdown 可以迅速存SNAPSHOT
sava “” 即刻存储

stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum
dbfilename
dir

持久化

rdb(redis database)
SNAPSHOT快照,将数据集快照写入磁盘
rdb缺点是最后一次持久化后的数据可能丢失
保存的是dump.rdb

aof(append only file)
以日志的形式记录每个写操作

恢复数据先加载aof,rdb和aof可以同时共存,是没有问题的。
redis-check-aof --fix appendonly.aof 修复aof
appendonly on/yes
appendfilename “aof文件名”
appendfsync(always,everysec(出厂默认,每秒同步),no)
auto-aof-rewrite-min-size:设置重写的基准值
auto-aof-rewri-percentage:设置重写的百分比

重写:触发机制,redis会记录上次重写时的aof大小,默认配置是当aof文件大小是上次rewrite后大小的一倍且文件大于64M时触发。

redis 事务

常用命令
discard:取消事务
exec:执行
multi:标记事务开始
unwatch:取消监视
watch key

悲观锁,每次拿数据的时候都认为别人会修改,所以每次拿数据的时候都会上锁,这样别人想拿这个数据就会block直到拿到锁;行锁表锁读锁写锁
乐观锁,加version列,每次都认为别人不会修改,所以不会上锁,但是在更新的时候会判断此期间别人有没有去更新这个数据,可以使用版本号等机制。策略:提交版本必须大于记录当前版本才能执行更新。
CAS(check and set)
不支持原子性,部分支持事务

redis的发布订阅

进程间的消息通信:发送者pub发送消息,订阅者sub接收消息
psubscribe pattern
pubsub subcommand
publish channel message
punsubscribe
subscribe channel
unsubscribe

redis的复制(master(写为主),slaver(读))

配从(库)不配主(库)
从库配置:slaveof 主库ip 主库端口,每次与master断开之后,都需要重新连接,除非配置进redis.conf文件。Info replication 可以查看是否主机、从机

主从复制配置详情
拷贝多个redis.conf 文件
开启daemonize yes
pid文件名字
指定端口
log文件名字
dump.rdb名字

从,执行命令:slaveof 127.0.0.1 6379
从机只读
主机挂了,从机原地待命

一主二仆,薪火相传,反客为主(slave no one)

哨兵模式
新建sentinel.conf
sentinel monitor host6379 127.0.0.1 6379 1
启动哨兵:redis-sentinel /…/sentinel.conf

Jedis

JedisPool
配置:JedisPoolConfig
maxactive:控制一个pool可分配多少个jedis实例
maxidle:控制一个pool最多有多少个状态为idle(空闲)的jedis实例
maxwait:表示当borrow一个jedis时,最大的等待时间
testonborrow:获得一个jedis实例的时候是否检查连接可用性

说明:如有雷同请告知!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值