关闭

Redis 学习整理

标签: redis数据库
104人阅读 评论(0) 收藏 举报
分类:

Redis介绍

Redis 是 REmote Dictionary Server 的缩写, 它以字典存储结构,并允许其它应用通过TCP协议读写字典中的内容。

优势
1.数据存储形式和程序中的存储形式很相近。
2.对不同数据类型提供方便的操作方式

redis提供多个数据库(默认16),每个数据库以编号命名
(不可修改),权限统一,数据库之间不完全隔离。
redis可设置生存时间,设置占用内存空间,可修改源码

命名键规则(对象类型:对象ID:对象属性)

redis命令返回值:
1.状态回复 ping-pong
set-ok
2.错误回复 error
3.整数回复
4.字符串回复
5.多行字符串回复

支持的键值数据类型:
字符串类型 string
散列类型 hash
列表类型 list
集合类型 set
有序集合类型 zset


Redis基础

(Redis命令不区分大小写)

用途 命令
linux连接 redis-cli
获得符合规则的键名列表 KEYS pattern
判断一个键是否存在 EXISTS key
删除键 (返回删除个数) DEL key [key …]
获得键值的数据类型 TYPE key




字符串类型 (string)

用途 命令
获得/设置键值 SET key value
GET key
增加指定的整数 INCR key
INCRBY key increment
减少指定的整数 DECR key
DECRBY key decrement
增加指定的浮点数 INCRBYFLOAT key increment
向尾部追加值 APPEND key valuere
获取字符串长度 STRLEN key
同时获得/设置多个键值 MGET key [key …]
MSET key value [key value…]
位设置 GETBIT key offset
SETBIT key offset value
位计算 BITCOUNT key [start] [end]
位运算 bitop operation destkey key [key …]




散列类型(hash)
适合存储对象

用途 命令
赋值与取值(更新操作返回0) HSET key field value
HGET key field
HMSET key field value [field value…]
HMGET key field [field…]
HGETALL key
判断字段是否存在 HEXISTS key field
当字段不存在时赋值 HSETNX key field value
增加数字 HINCRBY key field increment
删除字段 HDEL key field [field …]
只获取字段名或字段值 HKEYS key
HVALS key
获得字段数量 HLEN key




列表类型(list)
存储有序的字符串列表
越接近两端,访问速度越快。
通过索引访问元素较慢
可模拟栈和队列

用途 命令
向列表两端增加元素,返回增加元素后列表的长度 LPUSH key value [value …]
RPUSH key value [value …]
从列表两端弹出元素 LPOP key
RPOP key
获取列表中元素的个数 LLEN key
获得列表片段,支持负索引 LRANGE key start stop
删除列表中指定的值,返回删除的元素个数 LREM key count value
获得/设置指定索引的元素值 LINDEX key index
LSET key index value
只保留列表指定片段,删除其它元素 LTRIM key start end
向列表中插入元素 LINSERT key BEFORE/AFTER pivot value
将元素从一个列表转到另一个列表 RPOPLPUSH source destination




集合类型(set)
无序,唯一
利用散列表存储,拉链法解决冲突

用途 命令
增加/删除元素 SADD key member [member …]
SREM key member [member …]
获得集合中的所有元素 SMEMBERS keys
判断元素是否在集合中 SISMEMBER key member
集合间运算 SDIFF key [key …]
SINTER key [key …]
SUNION key [key …]
获取集合中的元素个数 SCARD key
进行集合运算并将结果存储 SDIFFSTORE destination key [key …]
SINTERSTORE destination key [key …]
SUNIONSTORE destination key [key …]
随机获得集合中的元素 SRANDMEMBER key [count]
从集合中弹出一个元素 SPOP key




有序集合(sorted set)
常用于大数据排序,很少需要键中所有数据。

与列表对比
相同:
(1)二者都是有序的
(2)二者都可以获得某一范围元素
区别:
(1)列表通过链表实现,有序集合通过散列表和跳跃表实现
(2)列表不能简单调整某个元素位置,有序集合可通过更改分数实现
(3)有序集合更耗内存

用途 命令
增加元素 ZADD key score member [score member]
获得元素的分数 ZSCORE key member
获得排名在某个范围的元素列表 (ZRANGE从大到小,ZREVRANGE反之) ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]
获得指定分数范围的元素 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
增加某个元素的分数 ZINCRBY key increment member
获得集合中元素的数量 ZCARD key
获得指定分数范围内的元素格式 ZCOUNT key min max
删除一个或多个元素 ZREM key member [member …]
按照排名范围删除元素 ZREMRANGEBYRANK key start stop
按照分数范围删除元素 ZREMRANGEBYSCORE key start stop
获得元素的排名 ZRANK key member
ZREVRANK key member
计算有序集合的交集 ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]][AGGREGATE SUM

Redis事务(学习ing…)

Redis中的事务是一组命令的集合。Redis保证事物中的命令要么都执行,要么都不执行,同时一个事务内的命令依次执行且不被其他命令插入。

事务采用队列来实现。
MULTI 开启事务后,若因断线没有成功执行EXEC,那事务中的所有命令都不会执行。如果成功执行EXEC那命令都会执行。

语法错误将直接返回错误,所有命令都不执行。
运行错误则会跳过错误继续执行。
Redis不支持回滚。

WATCH 监控一个键或多个键,一旦其中有一个键被更改,事务不会执行。 监控持续到EXEC。
UNWATC 取消监控

EXPIRE key seconds 设置键的生存时间,到时间后自动删除(PXPIRE 毫秒)
(RXPIREAT PEXPIREAT 使用Unix时间)
TTL key 返回键的剩余时间
PERSIST 取消键的生存时间 (利用SET 或 GETSET 同样可清除)

实现访问频率限制
1.递增键值,限制次数。固定时间删除键
2.记录访问时间,超出次数,则计算与最近的访问时间差值。如果在限制条件内则删除最早元素。

缓存:可利用生存时间实现(可修改配置文件的maxmemory 修改最大内存 )
SORT key [ALPHA] [DESC] [LIMIT OFFSET COUNT]
排序(ALPHA根据字典数据 DESC 从大到小排列)

BY 参考键
GET 参数
STORE 参数


Redis 脚本(学习ing…)




Redis参考书

《Redis 入门指南》

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:870次
    • 积分:65
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类