安装(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事务可以一次执行多个命令,并且带有以下两个重要保证:

  1. 事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序的执行。事务在执行过程中,不会被其他的客户端发送的命令请求所打断。
  2. 事务是一个原子操作:要么都执行,要么就都不执行。
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 数据库学习的更多相关文章

  1. 【redis数据库学习】用JAVA连接redis数据库各种报错

    最近项目中,需要用到redis数据库,然后使用Jedis让JAVA连接redis. 首先,安装redis数据库,参考的是:http://www.runoob.com/redis/redis-insta ...

  2. redis数据库学习笔记

    redis数据库 工作需要,简单了解一下redis数据库,供后续参考和复习使用. 一.简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字 ...

  3. redis数据库学习

    0 使用理由 0.1 高性能 纯内存操作,比在硬盘操作数据的速度有极大提升 0.2 高并发 承受请求比直接操作数据库大得多 0.3 单线程 至于redis单线程的原因.有点意思.CPU不是Redis的 ...

  4. 项目开发git-短信验证-redis数据库

    项目开发git操作 基本流程 """ 1.开发前,拉一次远程仓库 2.工作区进行开发 3.将开发结果提交到本地版本库 - git status查看时没有待处理的事件 4. ...

  5. 数据库学习番外篇 神奇的Redis

    数据库学习番外篇 神奇的Redis 由于最近呢小猿我找到了自己的女神,所以整个学习计划都被打乱了,本来想着一天看一张<SQLServer宝典>的.没成想,我竟然脱离了单身狗的队伍. 最近准 ...

  6. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

  7. 小白学习 Redis 数据库日记(2017-06-13)

    redis 127.0.0.1:6379> LPUSH runoobkey redis(integer) 1redis 127.0.0.1:6379> LPUSH runoobkey mo ...

  8. Redis学习(5)-Jedis(Java操作redis数据库技术)

    Java连接redis 一,导入jar包 Redis有什么命令,Jedis就有什么方法 设置防火墙 在Linux上面运行如下代码: 单实例:Jedis实例: package com.jedis.dem ...

  9. python学习笔记(十六)python操作redis数据库

    Redis是一个key-value存储系统,它支持丰富的数据类型,如:string.list.set.zset(sorted set).hash. Redis特点 Redis以内存作为数据存储介质,所 ...

随机推荐

  1. [转][Java]Jsp入门

    <% response.getOutputStream().write("123".getBytes()); %> 新建一个 Web Project 项目,jsp 文件 ...

  2. ansible之感冒药

    Ansible简介安装 Ansible是一个综合的强大的管理工具,他可以对多台主机安装操作系统,并为这些主机安装不同的应用程序,也可以通知指挥这些主机完成不同的任务.查看多台主机的各种信息的状态等,a ...

  3. java传递是引用的拷贝,既不是引用本身,更不是对象

    java传递是引用的拷贝,既不是引用本身,更不是对象 2008-09-16 04:27:56|  分类: Java SE|举报|字号 订阅     下载LOFTER客户端     1. 简单类型是按值 ...

  4. verilog 之数字电路 寄存器,触发器。

    我一直听说没有由code到circuit就只是入门了.实在没办法了.我想了一招,一个一个的写,然后看RTL,然后分析.这是第一篇. 1.触发器. 没有复位,置位.posedge clk 是触发沿时钟. ...

  5. ORA-00600: 内部错误代码, 参数: [qctcte1]

    [情景再现] 生产环境,JAVA程序某功能报错: ORA-00600: 内部错误代码, 参数: [qctcte1], [0], [], [], [], [], [], [] [问题排查] 1.检查Or ...

  6. python的disutils创建分发包

    python中的distutils包主要用创建共享包,安装包,在平时安装python模块的时候,使用的命令如下: python setup.py install 其实以上代码就是distuitls包提 ...

  7. Win7 Wifi 老断线

    在cmd命令窗口 netsh wlan set autoconfig enabled=no interface="无线网络连接" 此时你再来查看Win7系统任务栏处的网络菜单中查找 ...

  8. UNITY Destroy()和DestroyImadiate()都不会立即释放对象内存

    如题,destroyimadiate是立即将物体从场景hierachy中移除,并标记为 "null",注意 是带引号的null.这是UNITY内部的一个处理技巧.关于这个技巧有很争 ...

  9. Java开发WebService实例(1)

    参考文献:http://blog.sina.com.cn/s/blog_7bd0d6a70101dixc.html 简单的java工程实现 1 首先建立一个Java工程,在里面建一个Web servi ...

  10. 火狐浏览器的RestClient,接口测试,Post提交数据

    昨天需要测试接口是不是调通,api中本身已经集成了测试,但加了OAuth,api有没有添加头文件,Headers的地方,所以想用RESTClient的Post提交重新测试下,但是,调了好几个小时都没有 ...