潭州课堂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 ...
随机推荐
- 简述JavaScript全局对象
全局对象是JavaScript中非常重要的一类对象,它作为程序顶层(程序最顶端,不包括在任何函数之内)的上下文存在,JavaScript中的全局属性.全局函数都是通过全局对象来提供给程序的,比如 全局 ...
- Ubuntu Eclipse C++运行问题:launch failed.Binary not found
在Ubuntu下的Eclipse C++环境出现launch failed.Binary not found问题时,可采用如下解决方案: (1)首先检查系统中是否成功安装g++.如果console输出 ...
- nginx配置集群
1.准备两个Tomcat 首先在Linux机器上部署两个Tomcat,端口分别为80和8080 2.分别部署测试应用 在两个tomcat下分别部署同一个应用testapp,很简单,就是在页面显示当前系 ...
- angularjs入门(二)
angularJs是一个mvc模式, m-model-->当前视图中可用的数据, v-view--> HTML. c-controller-->即 JavaScript 函数,可以添 ...
- centos常用网络管理命令
网卡配置命令:ifconfig (ip addr , ip link) ifconfig:显示所有活动状态的相关信息 ifconfig Interface:仅显示指定接口的相关信息 ifc ...
- 转载:编译安装Nginx(1.5.1)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19618.html 1.5 configure详解 可以看出,configure命令至关重要,下文将详细介绍如何使用configure ...
- Expm 4_2 有向无环图中的最短路径问题
[问题描述] 建立一个从源点S到终点E的有向无环图,设计一个动态规划算法求出从S到E的最短路径值,并输出相应的最短路径. 解: package org.xiu68.exp.exp4; import j ...
- GitHub上优秀的Go开源项目
近一年来,学习和研究Go语言,断断续续的收集了一些比较优秀的开源项目,这些项目都非常不错,可以供我们学习和研究Go用,从中可以学到很多关于Go的使用.技巧以及相关工具和方法.我把他们整理发出来,大家有 ...
- 输入一个数,求1到他 的和(for循环)
- MySQL5.7的新特性
MySQL 5.7版本据说已经在了很大的性能提升以及做得更加安全了,想了解更多MySQL 5.7的新特性可以参考我转载叶金荣老师的MySQL 5.7的新特性说明.这里我简单演示一下MySQL 5.7的 ...