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代码---indexOf()方法
总结:indexOf(String str,int index)方法.从参数指定位置开始,如果index值超过了字符串长度,则返回-1 package com.a.b; import java.io. ...
- zookeeper实战:SingleWorker代码样例
我们需要一个“单点worker”系统,此系统来确保系统中定时任务在分布式环境中,任意时刻只有一个实例处于活跃:比如,生产环境中,有6台机器支撑一个应用,但是一个应用中有30个定时任务,这些任务有些必须 ...
- PyQt 5布局管理
绝对定位 绝对定位有以下限制 1.如果调整窗口,控件的大小和位置不会改变 2.在各种平台上应用程序看起来不会一样 3.如果改变字体,我们的应用程序的布局就会改变 4.如果我们决定改变我们的布局,我们必 ...
- 开启 3389 的 cmd 命令
方法一: 测试环境 Windows 2003 server 查看开启的端口 没有开启 3389 端口 执行语句 wmic RDTOGGLE WHERE ServerName='%COMPUTERNAM ...
- Django 模型层(2)
多表操作: 创建模型: 作者模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及em ...
- Python Twisted系列教程22:结束
作者:dave@http://krondo.com/part-22-the-end/ 译者: Cheng Luo 你可以从”第一部分 Twist理论基础“开始阅读:也可以从”Twisted 入门!“ ...
- U盘启动安装WIN7(包含资源的地址)
这几天在装win7和linux双系统,整理一下 第一种是在正常的windows下,网上下了镜像之后,装虚拟光驱,然后双击安装,按步骤执行即可,这个没什么好讲的. 第二种是windows坏掉,或者木有系 ...
- SpringMVC关于json、xml自动转换的原理研究[附带源码分析](使用JAXB转换XML)
前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/spring ...
- spring jpa 创建时间和更新时间自动更新
@Entity @Table(name="RS_SIGNUPUSER") public class RsSignUpUser { @Id @GenericGenerator(nam ...
- Android开发实战之补间动画和属性动画
说起动画,其实一点也不陌生,在使用一款app的时候为了优化用户体验,多多少少的,都会加入动画. 安卓中的动画,分为两大类:补间动画和属性动画.本篇博文会详细介绍总结这两大动画,希望本篇博文对你的学习和 ...