Redis 数据库学习
安装(mac)
- 使用homebrew安装,命令是:
brew install redis。 - 安装完成后启动命令:
brew services start redis。 - 使用命令
redis-cli进入redis进行下一步的操作。
Redis 的数据类型
String 类型
string是redis最基本的数据类型,一个key对应一个value,一个key最大能存储512m。
127.0.0.1:6379> SET name "xiaoming"
OK
127.0.0.1:6379> GET name
"xiaoming"
127.0.0.1:6379>
Hash
redis的hash是键值对集合。
127.0.0.1:6379> HMSET user:1 username xiaohong password xiaohong sex gril
OK
127.0.0.1:6379> HGETALL user
(empty list or set)
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "xiaohong"
3) "passworld"
4) "w3cshool.cc"
5) "points"
6) "200"
7) "password"
8) "xiaohong"
9) "sex"
10) "gril"
List
redis是简单的字符串列表,按照插入的顺序排序。
127.0.0.1:6379> lpush xiaoming class
(integer) 1
127.0.0.1:6379> lpush xiaoming class1
(integer) 2
127.0.0.1:6379> lpush xiaoming class2
(integer) 3
127.0.0.1:6379> lpush xiaoming class2
(integer) 4
127.0.0.1:6379> lpush xiaoming class2
(integer) 5
127.0.0.1:6379> LRANGE xiaoming 0 1
1) "class2"
2) "class2"
127.0.0.1:6379> LRANGE xiaoming 0 10
1) "class2"
2) "class2"
3) "class2"
4) "class1"
5) "class"
Set 集合
Redis的set是string的无序集合。
sadd命令
添加一个string元素到key对应的set集合中去,成功则返回1,元素存在返回0,key对应的set不存在则返回错误。
127.0.0.1:6379> sadd xiaoming class
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> sadd xiaoming class1
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> sadd xiaoming1 class
(integer) 1
127.0.0.1:6379> sadd xiaoming1 class1
(integer) 1
127.0.0.1:6379> sadd xiaoming1 class2
(integer) 1
127.0.0.1:6379> sadd xiaoming1 class2
(integer) 0
127.0.0.1:6379> SMEMBERS xiaoming
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> SMEMBERS xiaoming1
1) "class1"
2) "class"
3) "class2"
zset 有序集合
zset和set一样,也是string类型的元素集合,并且是不允许重复的成员。不同的是zset会为每一个成员设置一个score分数,zset集合的顺序也是通过这个score进行排序的。zset元素是唯一的,但是score是可以重复的。
127.0.0.1:6379> ZADD xiaoming2 0.1 class1
(integer) 1
127.0.0.1:6379> ZADD xiaoming2 0.2 class2
(integer) 1
127.0.0.1:6379> ZADD xiaoming2 0.09 class3
(integer) 1
127.0.0.1:6379> ZADD xiaoming2 0.09 class3
(integer) 0
127.0.0.1:6379> ZRANGEBYSCORE xiaoming2 0 100
1) "class3"
2) "class1"
3) "class2"
Redis 命令
Redis是通过bash命令后管理的,基本命令是redis-cli.
在远程服务上登录redis,命令是redis-cli -h host -p port -a password
Redis 事务
Redis事务可以一次执行多个命令,并且带有以下两个重要保证:
- 事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序的执行。事务在执行过程中,不会被其他的客户端发送的命令请求所打断。
- 事务是一个原子操作:要么都执行,要么就都不执行。
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> SET book "nodejs 21 days"
QUEUED
127.0.0.1:6379> GET book
QUEUED
127.0.0.1:6379> SADD tag "nodejs" "21"
QUEUED
127.0.0.1:6379> SMEMBERS tag
QUEUED
127.0.0.1:6379> EXEC
1) OK
2) "nodejs 21 days"
3) (integer) 2
4) 1) "21"
2) "nodejs"
Redis 数据库学习的更多相关文章
- 【redis数据库学习】用JAVA连接redis数据库各种报错
最近项目中,需要用到redis数据库,然后使用Jedis让JAVA连接redis. 首先,安装redis数据库,参考的是:http://www.runoob.com/redis/redis-insta ...
- redis数据库学习笔记
redis数据库 工作需要,简单了解一下redis数据库,供后续参考和复习使用. 一.简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字 ...
- redis数据库学习
0 使用理由 0.1 高性能 纯内存操作,比在硬盘操作数据的速度有极大提升 0.2 高并发 承受请求比直接操作数据库大得多 0.3 单线程 至于redis单线程的原因.有点意思.CPU不是Redis的 ...
- 项目开发git-短信验证-redis数据库
项目开发git操作 基本流程 """ 1.开发前,拉一次远程仓库 2.工作区进行开发 3.将开发结果提交到本地版本库 - git status查看时没有待处理的事件 4. ...
- 数据库学习番外篇 神奇的Redis
数据库学习番外篇 神奇的Redis 由于最近呢小猿我找到了自己的女神,所以整个学习计划都被打乱了,本来想着一天看一张<SQLServer宝典>的.没成想,我竟然脱离了单身狗的队伍. 最近准 ...
- 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总
本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...
- 小白学习 Redis 数据库日记(2017-06-13)
redis 127.0.0.1:6379> LPUSH runoobkey redis(integer) 1redis 127.0.0.1:6379> LPUSH runoobkey mo ...
- Redis学习(5)-Jedis(Java操作redis数据库技术)
Java连接redis 一,导入jar包 Redis有什么命令,Jedis就有什么方法 设置防火墙 在Linux上面运行如下代码: 单实例:Jedis实例: package com.jedis.dem ...
- python学习笔记(十六)python操作redis数据库
Redis是一个key-value存储系统,它支持丰富的数据类型,如:string.list.set.zset(sorted set).hash. Redis特点 Redis以内存作为数据存储介质,所 ...
随机推荐
- [转][Java]Jsp入门
<% response.getOutputStream().write("123".getBytes()); %> 新建一个 Web Project 项目,jsp 文件 ...
- ansible之感冒药
Ansible简介安装 Ansible是一个综合的强大的管理工具,他可以对多台主机安装操作系统,并为这些主机安装不同的应用程序,也可以通知指挥这些主机完成不同的任务.查看多台主机的各种信息的状态等,a ...
- java传递是引用的拷贝,既不是引用本身,更不是对象
java传递是引用的拷贝,既不是引用本身,更不是对象 2008-09-16 04:27:56| 分类: Java SE|举报|字号 订阅 下载LOFTER客户端 1. 简单类型是按值 ...
- verilog 之数字电路 寄存器,触发器。
我一直听说没有由code到circuit就只是入门了.实在没办法了.我想了一招,一个一个的写,然后看RTL,然后分析.这是第一篇. 1.触发器. 没有复位,置位.posedge clk 是触发沿时钟. ...
- ORA-00600: 内部错误代码, 参数: [qctcte1]
[情景再现] 生产环境,JAVA程序某功能报错: ORA-00600: 内部错误代码, 参数: [qctcte1], [0], [], [], [], [], [], [] [问题排查] 1.检查Or ...
- python的disutils创建分发包
python中的distutils包主要用创建共享包,安装包,在平时安装python模块的时候,使用的命令如下: python setup.py install 其实以上代码就是distuitls包提 ...
- Win7 Wifi 老断线
在cmd命令窗口 netsh wlan set autoconfig enabled=no interface="无线网络连接" 此时你再来查看Win7系统任务栏处的网络菜单中查找 ...
- UNITY Destroy()和DestroyImadiate()都不会立即释放对象内存
如题,destroyimadiate是立即将物体从场景hierachy中移除,并标记为 "null",注意 是带引号的null.这是UNITY内部的一个处理技巧.关于这个技巧有很争 ...
- Java开发WebService实例(1)
参考文献:http://blog.sina.com.cn/s/blog_7bd0d6a70101dixc.html 简单的java工程实现 1 首先建立一个Java工程,在里面建一个Web servi ...
- 火狐浏览器的RestClient,接口测试,Post提交数据
昨天需要测试接口是不是调通,api中本身已经集成了测试,但加了OAuth,api有没有添加头文件,Headers的地方,所以想用RESTClient的Post提交重新测试下,但是,调了好几个小时都没有 ...