redis (一) --- 基本使用
概述
redis是基于key-value 我们所说的数据类型实际是 key-value 中的 value 。文章主要介绍的是redis 几个重要的数据类型的使用。
简单使用
//keys pattern 获取某种匹配的key
例如 : keys * set foo 1 //获取某个key 对应的 value 是什么类型的
例如 : type foo //某个key-value 是否存在
例如 : EXISTS foo //删除键
例如 :DEL foo
数据类型使用
链表
redis中使用双向链表,双向链表最基础的自然就是双端插入和获取了。需要注意的是插入后返回的链表的长度
测试环境:0>lpush numbers 1
"1" 测试环境:0>rpush numbers 2
"2" 测试环境:0>rpush numbers 3
"3" 测试环境:0>lpop numbers
"1" 测试环境:0>rpop numbers
"3"
字典(h)
以下面为例子说明

这有点像java的HashMap,但是有不一样,key 是 car ,那么 value 是 color ,name ,price 中的哪一个呢?redis 中的使用是这样的
测试环境:0>hset car price 500
"1" 测试环境:0>hset car name bmw
"1" 测试环境:0>hget car
"ERR wrong number of arguments for 'hget' command" 测试环境:0>hget car price
"500" 测试环境:0>hset cat price 600
"1" 测试环境:0>hget cat price
"600"
redis 中上面例子的key 是 cat price 或是 cat color 等 。
跳跃表(z)
redis中使用跳跃表的地方有两个地方,阅读前先看一下参考资料,了解跳跃表
- 有序集合键
- 集群节点中用作内部数据结构
整数集合(s)
相当于java中的 HashSet ,简单使用如下 :
测试环境:0>sadd letters a b c
"3" 测试环境:0>smembers letters
1) "a"
2) "c"
3) "b"
分布式锁实现
参考资料
-《redis设计及实现》
- https://www.jianshu.com/p/ac351674d8eb (推荐一看)
- http://doc.redisfans.com (推荐一看)
- https://redis.io/topics/distlock (redis 分布式锁参考)
redis (一) --- 基本使用的更多相关文章
- 使用redis构建可靠分布式锁
关于分布式锁的概念,具体实现方式,直接参阅下面两个帖子,这里就不多介绍了. 分布式锁的多种实现方式 分布式锁总结 对于分布式锁的几种实现方式的优劣,这里再列举下 1. 数据库实现方式 优点:易理解 缺 ...
- Ignite性能测试以及对redis的对比
测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认 ...
- mac osx 安装redis扩展
1 php -v查看php版本 2 brew search php|grep redis 搜索对应的redis ps:如果没有brew 就根据http://brew.sh安装 3 brew ins ...
- Redis/HBase/Tair比较
KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式 支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...
- Redis数据库
Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...
- redis 学习笔记(2)
redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...
- redis 学习笔记(1)
redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...
- python+uwsgi导致redis无法长链接引起性能下降问题记录
今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
随机推荐
- visual env VS conda environment of python
1. There's two types of python environment in pycharm: virtualenv Environment conda environment For ...
- Allegro 反射仿真--IBIS模型转化
一.IBIS模型的获取 a) 直接找芯片供应商 b) 从网上下载 i.到Google网站直接搜索某个型号的IBIS模型: ii. 到器件厂商的官方网站下载: iii.从专门提供IBIS模型的网站搜索下 ...
- 一键安装各个版本boost库(无需编译)
1.NuGet 最简单的,用VS自带的NuGet包管理器安装,一般比较常用的上面都有 2.下载exe安装包 在这里https://sourceforge.net/projects/boost/file ...
- codeforces 1283F. DIY Garland(树+优先队列)
题目连接:https://codeforces.com/contest/1283/problem/F 题意:一根电线连接着两个点,这两个点分别代表着两个灯,灯有自己的编号i,其亮度是2 ^ i,每根电 ...
- AcWing 285. 没有上司的舞会
//f[u][0]是所有以u为根的子树中选择,并且不选u这个点的方案 //f[u][1]是所有以u为根的子树中选择,并且 选u这个点的方案 #include <cstring> #incl ...
- Apache Kafka(一)- Kakfa 简介与术语
Apache Kafka 1. Kafka简介.优势.以及使用场景 Kafka的优势: 开源 分布式,弹性架构,fault tolerant 水平扩展: 可以扩展到100个brokers 可以扩展到每 ...
- 2019年牛客多校第一场B题Integration 数学
2019年牛客多校第一场B题 Integration 题意 给出一个公式,求值 思路 明显的化简公式题,公式是分母连乘形式,这个时候要想到拆分,那如何拆分母呢,自然是裂项,此时有很多项裂项,我们不妨从 ...
- AC3 encoder flow
AC3 encoder flow 如下: 1.input PCM PCM在进入encoder前会使用high pass filter来移除信号的DC部分来达到更有效的编码. 2.Transient d ...
- 【C语言】一堆数组中存放了10个小于100的整数,请编程对所有数据按照从小到大的顺序进行排序,若个位数相等,则按照十位从小到大的顺序排序,输出排序后的结果
分析:取余,判断个位是否相等,利用冒泡法排序 #include <stdio.h> int main() { ] = { ,,,,,,,,, };/*数组*/ int i, j, k; ; ...
- Pycharm调试django项目时发现断点失效
解决方法: 第一步: 第二步: 点击 Edit Configuration 第三步 : 点击 + 选择python 填写相关参数信息 或者 点击ok 完成配置 重启 IDE 注意 重启IDE ...