读书笔记-----redis实战(一)

安装参考之前的博客

第一章 初识redis

redis数据结构
  1. redis可以存储键与五种不同数据结构类型之间的映射。分别有:
  • STRING 字符串
  • LIST 列表
  • HASH 散列
  • SRT 集合
  • ZSET 有序集合
  1. 基础操作
  • string 的get、set、del
  • list的rpush、lpush、lrange0 -1、lindex、lpop
  • set的sdaa、srem、smembers、sismember
  • hash的hset、hgetall、hdel、hget
  • zset的zadd、zrange、zrangebuscore
  1. zset是redis里面唯一一个既可以根据成员访问元素,又可以根据分值以及分值的排序顺序来访问元素的结构。

第二章 使用redis

  1. 使用redis记录用户信息(没讲具体实现)
  2. 使用redis实现购物车:每个用户的购物车都是一个散列,存储商品ID与商品订单数量之间的映射。
  3. 网页缓存。等。

第三章 redis命令

字符串

存储字符串、整数和浮点数。

  1. 自增、自减操作

localhost:0>get key
null
localhost:0>incr key
“1”
localhost:0>get key
“1”
localhost:0>incrby key 11
“12”
localhost:0>decrby key 10
“2”
localhost:0>get key
“2”
2.字节串的读取写入
localhost:0>append love you
“3”
localhost:0>append love you
“6”
localhost:0>append love you
“9”
localhost:0>get love
“youyouyou”
substr love 1 3
“ouy”

列表

由多个字符串组成的有序序列结构。
列表允许用户从序列的两端推入或者弹出元素,还可以存储任务消息,最近浏览的文章或者常用联系人信息。

命令使用描述
rpushrpush key value将一个元素推入列表右端
lpushlpush key value将一个元素推入列表左端
rpoprpop key移除并返回列表最右端的元素
lpoplpop key移除并返回列表最左端的元素
lindexlindex key offset返回列表中偏移量为offset的元素
lrangelrange key start end返回列表偏移量从start到end内所有元素
ltrimltirm key start end对列表进行修剪,只保留start到end范围内的元素

阻塞式列表弹出、移动元素命令

localhost:0>lrange list 0 -1
“c”
“b”
“a”
“d”
“e”
“f”
“item1”
“item2”
localhost:0>lrange list2 0 -1
“item3”
localhost:0>brpoplpush list2 list 1
“item3”
localhost:0>lrange list 0 -1
“item3”
“c”
“b”
“a”
“d”
“e”
“f”
“item1”
“item2”
localhost:0>brpoplpush list list2 1
“item2”
localhost:0>lrange list2 0 -1
“item2”
blpop list list2 1
“list”
“item3”
localhost:0>blpop list list2 1
“list”
“c”
localhost:0>blpop list list2 1
“list”
“b”
localhost:0>lrange list 0 -1
“a”
“d”
“e”
“f”
“item1”
localhost:0>brpop list list2 1
“list”
“item1”
localhost:0>lrange list 0 -1
“a”
“d”
“e”
“f”

集合

集合是以无序的方式存储各个不同的元素

命令使用描述
saddsadd key item将元素添加到集合里面
sremsrem key item从集合移除元素
sismembersismember key item检查元素是否存储与集合key里面
scardscard key返回集合包含的元素数量
smemberssmembers key返回集合包含的所有元素
spopspop key随机移除集合的一个元素,返回移除的元素
smovesmove source dest item移除item添加到dest中

localhost:0>sadd set-key a b c
“3”
localhost:0>smembers set-key
“c”
“a”
“b”
localhost:0>sadd set-key a b
“0”
localhost:0>srem set-key a b
“2”
localhost:0>srem set-key a b
“0”
localhost:0>smembers set-key
“c”
在这里插入图片描述
localhost:0>sadd set-key1 a b c d
“4”
localhost:0>sadd set-key2 c d e f
“4”
localhost:0>sdiff set-key1 set-key2
“a”
“b”
localhost:0>sinter set-key1 set-key2
“c”
“d”
localhost:0>sunion set-key1 set-key2
“c”
“e”
“b”
“a”
“d”
“f”

散列
命令使用描述
hmgethmget key key从散列里面获取一个或多个键的值
hmsethmset key value为散列里面的一个或者多个键设置值
hdelhdel key key删除散列里面的一个或者多个键值对,返回数量
hlenhlen key返回散列包含的键值对的数量

localhost:0>hmset hash-key ‘k1’:‘v1’ ‘k2’:‘v2’
“OK”
localhost:0>hmget hash-key k1 k2
“v1”
“v2”

在这里插入图片描述
在这里插入图片描述

有序集合

有序集合存储着成员与分值之间的映射,并且提供了分值处理命令。
在这里插入图片描述

localhost:0>zadd zset-key 1 c 2 b 3 a
“3”
localhost:0>zcard zset-key
“3”
localhost:0>zscore zset-key a
“3”
localhost:0>zscore zset-key b
“2”
localhost:0>zscore zset-key 1
null
localhost:0>zscore zset-key c
“1”
在这里插入图片描述

发布与订阅
其他命令
  1. sort

在这里插入图片描述
2)设置键的过期时间

命令示例描述
persistpersist key移除键的过期时间
ttlttk key查看键距离过期时间还有多少秒
expireexpire key seconds给键指定的秒数后过期
pttlpttl key查看指定键的过期时间还有多少毫秒(redis2.6版本上适用)
pexpirepexpire key milliseconds让键在指定毫秒之后过期(redis2.6版本上适用)

第四章 数据安全与性能保障

4.1持久化

redis提供两种不同的持久化方法来将数据存储到硬盘中。一种是快照,它将存在于某一时刻的所有数据都写入磁盘中。另一种只追加文件AOF它会在执行写命令的实惠将被执行的写命令复制到硬盘里面。这两种持久化方式可以同时使用,又可以单独使用
1)快照持久化
redis可以通过创建快照来获取存储在内存中的数据在某个时间点上的副本。在创建快照之后,用户可以对快照进行备份。
缺点:会有丢失上一次备份和下一次备份之间的数据的可能。
2)AOF持久化
AOF 持久化会将被执行的写命令写到AOF文件的末尾,以此来记录数据发生的变化。使用appendonly yes配置选项设置打开持久化方式。

  • appendfsync always 每个redis执行写命令都同步到硬盘
  • appendfsync everysec 每秒执行一次同步
  • appendfsync no 让操作系统决定执行同步的时机。
    缺点:随着redis不断的运行。AOF文件体积也会随着增大,极端情况可能会用完磁盘所有空间。还有就是如果redis重启之后,如果AOF文件体积非常大,还原操作时间就会变得很长。

3)重写、压缩AOF文件
用户向redis发送BGREWRITEAOF命令,这时会通过移除AOF文件中的冗余命令来重写AOF文件,是文件变得尽可能的小。为防止AOF文件太大,删除时间长,可以设置一些选项。

  • auto-aof-rewrite-percentage
  • auto-aof-rewrite-min-size
    比如:auto-aof-rewrite-percentage 100,auto-aof-rewrite-min-size 64mb 。那么当AOF文件体积大于64MB。并且体积比上一次重写大了至少100倍,redis 将执行BGREWRITEAOF命令。
4.2复制

复制可以让其他服务器拥有一个不断更新的数据副本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值