NoSQL数据库一Redis基本使用
基本操作
参考教程:https://www.yiibai.com/redis/
Redis 是 Key-Value 内存数据库,操作是通过各种指令进行的,比如 SET 指令可以设置键值对,而 GET 指令则获取某一个键的值。不同的数据结构,Redis 有不同的指令,这样指令一共有几十个,下面主要介绍一些常用的指令。
Redis 对 Key 也就是键有各种各样的指令,主要有下面的指令(下面的指令中小写字符串都是参数,可以自定义):
SET key value 设置键值;
EXISTS key 判断键是否存在;
EXPIRE key seconds 设置 Key 的过期时间,过期以后Key 将被自动删除;
TTL key 获取 Key 的剩余生存时间;
DEL key 删除 Key;
TYPE key 获取 Key 对应的 Value 的类型;
通过 redis-cli 演示以上的指令如下:
127.0.0.1:6379> exists user
(integer) 0
127.0.0.1:6379> set user aiden
OK
127.0.0.1:6379> get user
"aiden"
127.0.0.1:6379> type user
string
127.0.0.1:6379> expire user 5
(integer) 1
127.0.0.1:6379> ttl user
(integer) 4
127.0.0.1:6379> ttl user
(integer) 2
127.0.0.1:6379> ttl user
(integer) -2
127.0.0.1:6379> exists user
(integer) 0
上面例子中,首先判断 user 键是否存在,接着通过 SET 设置了值,接着还使用 EXPIRE 指令设置了过期时间为 5 秒。可以看到 5 秒后,user 键就被自动删除了。
有的时候会看到输出的字符串前有 b 这样的前缀,表示字节编码的字符串,对应的还有 u'xxxxx' 这类 unicode 编码的字符串,都比较常见。
上文中已提到,Redis 还支持其他的数据结构,不仅仅是简单的字符串键值对,比如支持哈希类型的键值,这种数据结构中 Key 对应于一个哈希,而哈希又包含多个字段和相应的值。对于这种类型主要有下面的操作指令:
HSET key field value 设置名称为 key 的哈希的字段 field 为值 value;
HGET key field 获取名为 key 的哈希的字段 field;
HGETALL key 获取名为 Key 的哈希所有字段和 Value;
HKEYS key 获取名为 Key 的哈希的所有字段;
HLEN key 获取名为 Key 的哈希的字段数量;
通过 redis-cli 演示如下:
127.0.0.1:6379> exists user
(integer) 0
127.0.0.1:6379> hset user name aiden
(integer) 1
127.0.0.1:6379> hset user age 30
(integer) 1
127.0.0.1:6379> hmset user email luojin@simplecloud.cn addr chengdu
OK
127.0.0.1:6379> hgetall user
1) "name"
2) "aiden"
3) "age"
4) "30"
5) "email"
6) "luojin@simplecloud.cn"
7) "addr"
8) "chengdu"
127.0.0.1:6379> hkeys user
1) "name"
2) "age"
3) "email"
4) "addr"
127.0.0.1:6379> hget user addr
"chengdu"
127.0.0.1:6379> hlen user
(integer) 4
上面的例子中,设置了一个名为 user 的哈希。先使用 HSET 为单个字段赋值,接着使用 HMSET 为多个字段赋值。使用 HGETALL 能一次获取全部的字段和值。
Redis 还支持有序集合,有序集合可以用于快速实现排名功能,只要的操作指令如下:
ZADD key score member 将成员和对应的评分添加到有序集合中;
ZREVRANK key member 获取 member 在有序集合 key 中的排名;
通过 redis-cli 演示如下:
127.0.0.1:6379> zadd rank 100 aiden
(integer) 1
127.0.0.1:6379> zadd rank 120 lxtttx
(integer) 1
127.0.0.1:6379> zadd rank 80 jin
(integer) 1
127.0.0.1:6379> zrevrank rank aiden
(integer) 1
127.0.0.1:6379> zrevrank rank lxtttx
(integer) 0
127.0.0.1:6379> zrevrank rank jin
(integer) 2
127.0.0.1:6379> zrevrank rank not_exist
(nil)
上面例子中,我们通过 ZADD 往 rank 中添加了三个成员,最后通过 ZREVRANK 依次获取了成员的排名,可以发现排名是从 0 开始计算的,排第 0 的成员得分最高。
NoSQL数据库一Redis基本使用的更多相关文章
- NOSQL数据库之 REDIS
NOSQL数据库之 REDIS 一.NOSQL 1.简介 NoSQL ,(Not Only SQL),泛指非关系型数据库. 特点: NoSQL 通常是以key-value形式存储, 不支持SQL语句, ...
- Python操作nosql数据库之redis
一.NoSQL的操作 NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不 ...
- nosql数据库之Redis概念及基本操作
一.概述 redis是一种nosql数据库(非关系型数据库),他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(st ...
- Linux实战教学笔记45:NoSQL数据库之redis持久化存储(一)
第1章 redis存储系统 1.1 redis概述 REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统.redis和大名鼎鼎的Mem ...
- NoSQL数据库:Redis适用场景及产品定位
传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...
- NoSQL数据库之Redis数据库:Redis的介绍与安装部署
NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的w ...
- NoSQL数据库:Redis内存使用优化与存储
Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: ●String ●Hash ●List ●Set ●Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Re ...
- 大数据笔记(二十一)——NoSQL数据库之Redis
一.Redis内存数据库 一个key-value存储系统,支持存储的value包括string(字符串).list(链表).set(集合).zset(sorted set--有序集合)和hash(哈希 ...
- no-sql数据库之redis
一.FAQ 1.如果用连接器连接redis不成功,报如下错误: crash-report-server replied:Request Entity Too Large 则可以先通过cmd命令查看端口 ...
- Linux实战教学笔记46:NoSQL数据库之redis持久化存储 (二)
第3章 Redis数据类型详解 3.1 Redis键/值介绍 Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如"foo"的简单字符串到一个JPG ...
随机推荐
- CSPS分数取mod赛92-93
我好菜啊..... 92只会打暴力,93暴力都不会了 模拟92, T1:直接ex_gcd加分类讨论即可 T2:考场只会打暴搜,正解为排序后线段树解决,排序的关键字为a+b,因为如果ai<bj&a ...
- wepy框架滑动组件使用
https://github.com/dlhandsome/wepy-com-swiper
- python #!/usr/bin/python 的作用
在说之前,这里推荐写: #!/usr/bin/env python 进入正题,在 Python 里面第一行代码: #!/usr/bin/python 其他有的可能是 python2 或者 python ...
- 【原创】go语言学习(十四)IO操作1
目录: 格式化输入 格式化输出 终端输入输出背后的原理理 bufio包的使用 命令行参数处理理和urfave/cli使用 格式化输入 1.从终端获取⽤用户的输入 格式化输入 fmt.Scan(a …i ...
- 常用的os库笔记
1.创建文件 import os os.mkdir('d:/log') 2.重命名文件 import os os.rename('d:/log','d:/newlog') 3.删除文件 import ...
- 适当设置,可以让win10显示更加和自己的意思
一.个性化设置: 1.桌面右击-->个性化-->背景-->图片浏览-->C:\Windows\Web\Screen\img101.png,选择契合度-->适应 2.桌面右 ...
- sql server 发布订阅
[配置] 一. 发布方 复制 >> 如果有问题 C:\Windows\System32\drivers\etc hosts: 127.0.0.1 ?? 二. 订阅方 订阅方设置结束 三. ...
- linux下如何让控制台程序后台运行
方法1:./test & 方法2:(./test &) 方法3:nohup 和bg 方法4:screen -mS test /root/test 退出程序需要手动进入screen创 ...
- 表单Content-Type为multipart/form-data时,后台数据的接收
我们在写form提交表单的时候,后台大多数用request.getParameter的方式来接收前台输入的数据.但如果我们表单中提交的数据包含file文件传输的话,我们需要将Content-Type改 ...
- laravel中打印一个sql语句
查询构造器 打印sql是发现 toSql() 不可用 所以网上搜索下 //DB::connection()->enableQueryLog(); // 开启查询日志 $user=DB::tabl ...