redis使用

操作使用

redis也是key-value的存储方式,需要研究key的操作,和value类型的各种操作

1.key

key的命名规则不同于一般语言,键盘上除了空格、\n换行外其他的大部分字符都可以使用。像“my key”和“mykey\n”这样包含空格和换行的key是不允许的。

我们在使用的时候可以自己定义一个Key的格式。
例如 object-type?field
Key不要太长。占内存,查询慢。
Key不要太短。像u:1000:pwd 就不如 user:1000:password 可读性好



默认在redis里有16个库,下标从0开始。


对key的操作:set设置,get 获取 keys * 显示当前选择的数据库中所有的key
Keys d*获取前缀是d的所有key
Select选择数据库 (0-15一共16个,)
Expire key 设置过期时间
Ttl获取剩余时间
Flushdb 清空当前选择的数据库
Flushall清空所有数据库
Exists 判断key是否存在
Rename key 新key 重命名key
Move key 数据库名 将key移动到新数据库中

出现如下报错

原因是因为以外情况终止服务
解决方案:
运行config set stop-writes-on-bgsave-error no 命令后,关闭配置项stop-writes-on-bgsave-error解决该问题。
直接在cmd输入:
cmd>config set stop-writes-on-bgsave-error no

2.string

string是redis最基本的类型
redis的string可以包含任何数据。包括jpg图片或者序列化的对象。
单个value值最大上限是1G字节。
如果只用string类型,redis就可以被看作加上持久化特性的memcache


Mset批量设置key ==》value

Mset 下标1 值1 下标2 值2。。。。
Mget 下标1 下标2 下标3。。。。




3.wlist(队列)

list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。
这使得list既可以用作栈,也可以用作队列。

栈 的规则: 先进后出 同一端进出

队列的规则 先进先出 一端进 另外一端出

需求 存储一个链表,来模拟操作

key LA

value c c++ c# java js php python nodejs html css




队列是秒杀最常用的技术

一般网站会将秒杀时的用户id前1000个存入redis,如果抢购的是100件就可以把其他人全部拒绝或者让用户在某个页面停顿几秒钟。


4.set

redis的set是string类型的无序集合。集合里不允许有重复的元素。

set元素最大可以包含(2的32次方-1)个元素。

关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能。

并集 多个集合合并到一起

交集 多个集合共同的元素

差集 比其他集合多出来的元素

共同的好友 交集

你可能也认识 差集

需求

tomFRI jerry jack rose marry cat dog

xiaomingFRI xiaobai xiaohei xiaoqiang cat dog






5.zset(有序集合)

和set一样sorted set也是string类型元素的集合,

不同的是每个元素都会关联一个权。

通过权值可以有序的获取集合中的元素

权是一个排序的依据,相当于mysql里的order by的条件。

需求

文章热榜单 hotTop

id score hits

11 200 5000
22 160 500
33 10 10
44 500 50000






6.hash

hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似。
一条数据有多个字段,字段=>值。适合存储对应的值的方式。
key-value[field:value]


需求
存储两条信息
key name age sex job
p1 tom 18 1 php
p2 rose 19 2 js




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值