网站首页 > 基础教程 正文
Redis必知必会之API
1.Redis是一个开源、基于键值的存储系统、多种数据结构、功能丰富。
2.Redis支持持久化,断电不丢数据,对数据的更新异步保存到磁盘上。
3.Redis支持字符串、哈希、列表、集合、有序集合、位图、超小内存唯一计数、地理信息定位。
4.Redis支持多语言客户端,支持发布订阅,Lua脚本,事物,不依赖外部库,单线程模型,支持主从复制,高可用,分布式。
5.Redis典型使用场景有缓存系统、计数器,消息队列系统、排行榜、社交网络、实时系统。
6.启动方式分为
- 最简启动 redis-server
- 动态参数 redis-server --port 6380
- 配置文件 redis-server configPath
7.验证是否启动
- ps -ef | grep redis
- netstat -antpl | grep redis
- redis-cli -h ip -p port ping
8.Redis客户端返回值有状态回复、错误回复、整数回复、字符串回复、多行字符串回复。
9.常用配置
- daemonize 是否是守护进程
- port 对外端口
- logfile 日志
- dir 工作目录
10.一次只运行一条命令,拒绝长慢命令,不要轻易执行 keys、flushdb、flushall、show lua script等。
11.其实redis不是单线程 例如如下API fysnc file descriptor、close file descriptor。
Redis API
1.通用命令
- keys: 计算所有的键 O(n)
- dbsize: 数据库大小
- exists keys: key是否存在
- del:删除key
- expire key seconds: 设置过期时间
- type key: 获取key的数据类型
- ttl key: 查看key的剩余过期时间
- persist key: 去掉key的过期时间
2.列表类型
- rpush key value1 value2 valueN O(1-n)
- lpush key value1 value2 valueN O(1-n)
- linsert key before|after value newValue O(n)
- lpop key
- rpop key
- lrem key count value (删除count个value元素) 0(n)
- ltrim key start end (按照索引范围修剪列表) o(n)
- lrange key start end (包含end) (获取列表制定索引范围)
- lindex key index o(n)
- llen key
- lset key index newValue
- blpop key timeout (lpop的阻塞版本)
- brpop key timeout (rpop的阻塞版本)
- lpush + lpop = stack
- lpush + rpop = queue
- lpush + ltrim = Capped Collection
- lpush + brpop = Message Queue
3.字符串类型
- 场景:缓存、计数器、分布式锁
- get key
- set key value
- incr key
- decr key
- incrby key k
- decrby key k
- setnx key value 值不存在才设置
- set key value xx 存在才设置
- mget 批量获取 O(n)
- mset 批量设置 O(n)
- getset key newvalue 设置新值返回旧值
- append key value 将新值追加到旧值
- strlen 获取值的长度
- incrbyfloat key 3.5 增加对应key 3.5
- getrange key start end
- setrange key start value
4.集合类型
- 无序 无重复 支持集合间操作
- sadd key element (添加)
- srem key element (删除)
- scard key
- sismember key element
- srandmember key count (随机选出count个元素)
- spop key (随机弹出一个元素)
- smembers key (取出所有元素 小心使用)
- sscan (遍历集合)
- sdiff 差集
- sinter 交集
- sunion 并集
- sadd = 打标签
- spop/srandmember = 随机
- sadd + sinter = Social Graph
5.有序集合类型
- zadd key score element O(logN)
- zrem key element (删除)
- zscore key element
- zincrby key increScore element (增加分数)
- zcard key (返回个数)
- zrange key start end withscores (获取元素) (O(logN + m))
- zrangebyscore key minScore maxScore
- zcount key minScore maxScore (O(logN + m))
- zremrangebyrank key start end (删除指定排名内的升序元素)
- zremrangebyscore key start end (删除指定分数内的升序元素)
- zrevrank
- zrevrange
- zrevrangebyscore
- zinterstore
- zunionstore
6.哈希类型
- hget key filed
- hset key field value
- hdel key field
- hgetall key O(n)
- hexists key field
- hlen key 获取字段数量
- hmget key field1 field2 O(n)
- hmset key field1 value1 field2 value2 O(n)
- hincrby key field value
- hvals key 返回hash key对应所有field的value O(n)
- hkeys key 返回hash key对应的所有field O(n)
- hsetnx key field value
- hincrby key field intCounter
- hincrbyfloat key field floatCounter
关注私信回复:555领取Java高级架构资料、Spring源码分析、Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式等
- 上一篇: 关于Redis的知识点,你都学会了吗?
- 下一篇: C++------构造函数与拷贝构造函数
猜你喜欢
- 2024-10-12 关于Redis的知识点,你都学会了吗?
- 2024-10-12 「干货」Java后端开发高频面试题 java后端开发面试自我介绍
- 2024-10-12 redis常用命令总结(下) redis基本操作命令
- 2024-10-12 Redis常用简明命令 redis的命令大全
- 2024-10-12 Redis有序集合详解 redis在的有序集合中在数据量极少的情况下使用
- 2024-10-12 高性能的key-value数据库-Redis基本使用
- 2024-10-12 一、Redis基础和应用篇 redis相关知识
- 2024-10-12 NoSQL学习:初学Redis之Redis的数据模型
- 2024-10-12 一文掌握Redis常用API redis常用命令及详解
- 2024-10-12 redis 所支持的数据类型以及其应用场景
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)