潭州课堂25班:Ph201805201 redis第四课 (课堂笔记)
redis支持丰富的数据类型,
是个非关系型数据库。以键值对存储,存在内存里,
: string、 字符
list、 列表
set、 集合
zset(sorted set)、 有序集合
hash 哈西
进入 数据库:
redis-cli
keys * 查看所有key,
set name binbin str 的操作,set key value
get name "binbin" 查看
type name string 查看类型
key只能有一个,再get name 时将覆盖原有的值,
append name abc 追加,
get name "binbinabc"
mset age 12 sex boy 多组一起输入
mget age sex 查多个
1) "12"
2) "boy"
del name 删除
(integer) 1
get name
(nil)
exists name 查看是否存在
(integer) 0 存在返回 1 不存在返回 0
expire name 21 为已有的 key 设置存活时间
(integer) 1
ttl name 查看存活时间
(integer) 17
set name aa ex 30 在创建的同间设存活时间
OK
ttl name
(integer) 27
setex name aa 30 另一种方式
OK
set read_c 0 加 1 操作
OK
incr read_c
(integer) 1
incr read_c
(integer) 2
incr read_c
(integer) 3
decr read_c 减 1 操作
(integer) 2
decr read_c
(integer) 1
incrby read_c 1000 设加多少,
(integer) 1000
decrby read_c 999 设减多少
(integer) 1
集合(元序,有序)
sadd set_1 1 2 3 3 4 1 0 4 5 6
(integer) 7
smembers set_1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
srem set_1 6 删除,因为是元序 要指定
spop set_1 删除 随机
smove set_1 set_2 1 将 seft_1 中 1 的值移动到 set_2中
sismember set_2 1 判断该值在不在这个集合里
(integer) 1 是返回 1,否返回 0
smembers set_1
1) "0"
2) "2"
3) "3"
4) "4"
5) "5"
smembers set_2
1) "1"
2) "4"
3) "5"
4) "6"
sinter set_1 set_2 交集运算
1) "4"
2) "5"
sinterstore new set_1 set_2 交集运算后的结果放进 new 的 key 中
(integer) 2
smembers new
1) "4"
2) "5"
sunion set_1 set_2 并集运算
sunionstore news ste_1 set_2 并集运算后的结果放进 news 里
sdiff aet_1 set_2 差集运算
(empty list or set)
127.0.0.1:6379> sdiffstore s set_1 set_2 差集后的结果放进 s 中
srandmember new 随机返回
"5"
有序集合 zset
zadd zs 1 a 2 c 3 f 创建有序集合,
zrange zs 0 -1
1) "a"
2) "c"
3) "f"
127.0.0.1:6379> zrange zs 0 -1 withscores
1) "a"
2) "1"
3) "c"
4) "2"
5) "f"
6) "3"
127.0.0.1:6379> zrevrange zs 0 -1 逆序
1) "f"
2) "c"
3) "a"
127.0.0.1:6379> zrevrange zs 0 -1 withscores
1) "f"
2) "3"
3) "c"
4) "2"
5) "a"
6) "1"
127.0.0.1:6379>
zrem zs a 删除
(integer) 1
zcard zs 查看元素
(integer) 2
count zs a 查看指定元素,
hash 操作
hset user name binbin 可以理解为 user : { name: binbin }
hget user name 查看
hmset user age 15 sex boy addr chan 一次插入多组
hmget user age addr 一查看多组,
1) "15"
2) "chan"
hkeys user 查看 hash 里边的key
1) "name"
2) "age"
3) "sex"
4) "addr"
> hvals user 查看 hash 里的 values
1) "binbin"
2) "15"
3) "boy"
4) "chan"
hgetall user 查看所有 k,v
1) "name"
2) "binbin"
3) "age"
4) "15"
5) "sex"
6) "boy"
7) "addr"
8) "chan"
hlen user 查看该 hash 里有几项,
(integer) 4
type user
hash
list 列表 操作
lpush l1 1 2 左添加
(integer) 2
lpush l1 1 2 3 4
(integer) 6
lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "2"
6) "1" 他不会覆盖,
rpush l1 10 右添加
(integer) 7
lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "2"
6) "1"
7) "10"
llen l1
(integer) 7
lindex l1 0
"4" 索引查看,
lpop l1 左删除
"4"
rpop l1 右删除
"10"
lrem l1 1 1 指定删除,1 个 为1 的值 ,
lrem l1 1 2 指定删除 1 个为 2 的值,
lrem l1 -1 2 指定删除 从右到左删除1 个 为2的值,
lrem l1 -2 2 指定删除 从右到左 删除2个为2的值,
lrem l1 0 2 指定删除所有的 为2的值,
潭州课堂25班:Ph201805201 redis第四课 (课堂笔记)的更多相关文章
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)
index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第二课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)
类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...
- 潭州课堂25班:Ph201805201 django 项目 第五课 静态页面转为模板 (课堂笔记)
一.分析静态页面 1.静态vs动态 条目 静态页面 动态页面 网站内容 固定不变 经常变动 浏览器加载速度 更快(无需向服务器发起请求) 更慢 改变网站内容 很难(修改或者创建新的html页面) ...
- 潭州课堂25班:Ph201805201 tornado 项目 第四课 增加用户注册登录(课堂笔记)
tornado 相关说明 在 handlers 中创建个 auth.py 用来做用户登录,在这文件中创建个类,并逐步完善 在 tornado 中创建 login.html 文件,是个登录页面 {% e ...
- 潭州课堂25班:Ph201805201 django 项目 第四十六课 查错 补缺 (课堂笔记
从讲项目开始,查找错误,完善笔记,尽可能 翻译没一句代码(以后台为主), 本项目亮点,也是重点 Django ORM中对数据查询的优化(only.defer.select_related) redis ...
- 潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)
在线课堂 一.数据库模型设计 # 在apps/course/models.py中定义如下模型: from django.db import models from utils.models impor ...
随机推荐
- scrapy通过修改配置文件发送状态邮件
EXTENSIONS = { 'scrapy.extensions.statsmailer.StatsMailer': 500,} STATSMAILER_RCPTS = ['159882826 ...
- C# 实现UDP打洞通信(一)
最近研究了一下网络打洞的相关技术,TCP的方式据说可行性不高,各种困难,因此决定采用UDP(UDP是什么就不解释了)的方式. 原理: 我们都知道局域网内的主机想要访问外网的服务器是比较容易的,比如浏览 ...
- Android 工程中各种文件的介绍
一:Android.mk Android.mk 内部定义了一个或者多个源代码的模块,该文件的产生是和NDK相关的,NDK 是Android提供的一种工具,可以为编译mk文件内部的源代码提供依赖 ...
- Linux服务器性能评估
一.影响Linux服务器性能的因素 1. 操作系统级 CPU 内存 磁盘I/O带宽 网络I/O带宽 2. 程序应用级 二.系统性能评估标准 影响性能因素 影响性能因素 评判标准 好 坏 糟糕 CPU ...
- 大型NodeJS项目架构与优化
使用场景: proxy(API冗余,跨域) vue ssr(服务端渲染) socket(大并发,通讯) 区块链(创业公司,新兴行业) 讨论什么? NodeJS异步IO原理及优化方案 NodeJS内存管 ...
- java tomcat linux 环境变量设置
一https://www.cnblogs.com/hanshuai/p/9604730.html :whereis java //查找java 安装路径:which java //查找java 执行路 ...
- poj2823 单调队列初步
什么是单调队列:头元素一直是队列当中的最大值,队列中的值按照递减顺序排列,可以从末尾插入一个元素,或从两段删除元素 1.插入元素,为了保证队列的单调性(这里假设为递减性),在插入元素v时要将对位的元素 ...
- splay好板子
找到一份比较好的板子,链接https://blog.csdn.net/crazy_ac/article/details/8034190 #include<cstdio> #include& ...
- spoj New Distinct Substrings
vjudge原地爆炸... 题意:求一个字符串不同的子串的个数 策略:后缀数组 利用后缀数组的sa和height两个功能强大的数组,我们可以实现上述操作 首先有个很显然的结论:一个字符串的所有子串=它 ...
- 《转》Web Service实践之——开始XFire
Web Service实践之——开始XFire 一.Axis与XFire的比较XFire是与Axis2 并列的新一代WebService平台.之所以并称为新一代,因为它:1.支持一系列Web Serv ...