Redis-Redis实战(字符串类型)

Redis是一个kv数据块,所以先来看一下对键的操作。

Key的操作

1.设置一个键并指定值

127.0.0.1:6379> set bar 1
OK

2.查看所有的键

127.0.0.1:6379> keys *
1) "bar"

3.判断一个key是否存在

127.0.0.1:6379> exists bar
(integer) 1

4.查看一个key的数据类型

127.0.0.1:6379> type bar
string

5.删除key

127.0.0.1:6379> del bar
(integer) 1

字符串类型的操作

字符串类型是Redis中的基本数据类型,也是其他四种数据类型的基础,一个字符串类型的key最多能存储512MB的数据。

操作命令
set key value   #设置key-value
get key         #获取value
incr key        #value为数组时,+1
incrby key num  #增加指定的数字,+n
decr key        #value为数字时,-1
decrby key num  #减少指定的数字,-n
append key str  #尾部追加字符
strlen key      #获取长度
mset key value [,key value]  #同时设置多个key-value
mget key1, [key2,ke3..] #同时获取多个value
示例
127.0.0.1:6379> set k1 hello
OK
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> set k2 3
OK
127.0.0.1:6379> incr k2
(integer) 4
127.0.0.1:6379> incrby k2 10
(integer) 14
127.0.0.1:6379> decr k2
(integer) 13
127.0.0.1:6379> decrby k2 5
(integer) 8
127.0.0.1:6379> append k1 world
(integer) 10
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> strlen k1
(integer) 10
127.0.0.1:6379> mset k3 v3 k4 v4
OK
127.0.0.1:6379> mget k3 k4
1) "v3"
2) "v4"
127.0.0.1:6379> 
实践

1)利用incr实现博文的访问量统计。

这个应用的要点在于怎样设计key能更好的满足需求(通常为查询),同时,还要考虑到key风格的同一和扩展

post:articleId:page.view

Redis对key的命名并没有强制的规范,但比较好的实践是对象类型:对象ID:对象属性,例如user:1:friendsuser:2:name等等,如果属性有多个单词组成,则使用.来分隔,这样,逐层关联属性的key更有利于扩展和维护,虽然很可能使key过长进而占用空间,但与空间相比,或许可读性更重要。

2)生成自增ID

在MySQL这样的关系型数据库中,我们可以通过设置AUTO_INCREMENT属性来实现,而在redis中,通常是利用incr来实现 :对象类型:count

user:count
product:count
article:count
....

然后在程序中调用incr命令来+1

3)存储文本或二进制数据

以保存博文内容为例,伪代码实现如下所示:

#创建新博文id
$postId = incr posts:count
#序列化文章的各个部分为一个字符串
$serializedPost = serialize($title, $context, $author, $time)
#保存
set post:$postId:data = $serializedPost

$postId = 10
#获取原始数据
$serializedPost = get post:$postId:data
#反序列化数据
$title,$context,$author,$time = unserialize($serializedPost)
#访问量+1
$postCount = incr posts:count

当然,以上实现逻辑还存在问题,后续补充。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值