redis学习

1. 用docker安装redis

# 查找redis版本
docker search redis
# 安装最近的redis版本
docker pull redis:latest
# 启动redis 
# -itd 启动交户方式, 在后台运行
# -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
docker run -itd --name redis-test -p 6379:6379 redis
# 进入redis容器 
docker exec -it redis-test /bin/bash
# 客户段连接redis
redis-cli
# 退出
exit

2. redis 配置

# 查看所有 配置
CONFIG GET *
# 修改配置
CONFIG SET item itemvalue

3. redis 操作

# 启动
redis-cli -h host -p port -a password
# 有16数据库,默认用第一个数据库 ,可以用select切换 
# 查看所有key
keys * 
# 1 String
set testk "test"
get testk
del testk
# 2 List
lpush test str1
lpush test str2
lrange test 0 -1
lpop key # 移出并获取列表的第一个元素
rpop key # 移除列表的最后一个元素,返回值为移除的元素
# 3 Set集合
# 添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0
sadd key member 
# 查看set集合里面的内容
smemeber key
# 4 hash 
hmset testk str1 "str1test" str2 "str2test"
hget testk str1  
# 5 zset (有序集合)
# Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
# 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
# zset的成员是唯一的,但分数(score)却可以重复
zadd key 0 str1
zadd key 1 str2
zadd key 0 str3
zrange key 0 -1
# 列出score 0 ~ 1000 的
zrangebyscope key 0 1000
# 列出所有
zrange key 0 -1

# 设置过期时间,查看过期时间
expire key seconds
expire key timestamp
ttl key
pttl key 
# 将key 移动到指定数据库
move key dbNumber 
# 随机返回当前库的一个key
randomkey
# 重命名key 
rename key newkey
# 查看类型
type key
# 仅当newkey不存在时,将key改为newkey
renamenx key newkey
# 在key 后天添加内容
append key value

# 开启事务
multi
# 执行事务
exce
# 取消事务
discard

4. 异常
单条保证原子性的,事务是不保证原子性的

  1. 编译时异常(都不会成功)
multi
set k1 v1 
getset k1
set k2 v2 
  1. 运行时异常
multi
set k1 v1
incr k1
set k2 v2
exec

5. 监控(watch)

  • 悲观锁,认为什么时候都会出问题, 无论什么时候都会加锁
  • 乐观锁,认为什么时候都不会出问题,所有不会上锁!(Redis可以做乐观锁)
set money 100
watch money
multi
decrby money 20
exec  # money 在其他线程中有改动,事物则不会执行成功
unwatch #(如果事务执行失败,则先解锁,再监视)
# 修复 文件
redis-check-aof --fix appendonly.aof
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值