Redis学习笔记(二) 链表】的更多相关文章

Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间. 二.BitMap算法基本描述 BitMap 是使用 bit位来标记某个元素对应的value,而key 即是该元素,因此对于之前位数存储换成bit位存储数据能大大的节省存储空间. 三.BitMap的实现思想 假设我们要对于0-7内的5个元素(4,7,2,5,3)进行排序(假设元素没有重复)…
学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序列化的过程就是将对象转变为byte,字节码的过程. Java的反序列过程就是就是将字节码恢复成对象的过程. 一正一逆,也迎合了电脑存储数据的特点. 关于Java的序列化和反序列化的Demo: package hbut.base; import org.junit.Test; import java.…
1. 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库: struct redisServer { // ... redisDb *db; /* 一个数组,保存着服务器中的所有数据库 */ // ... int dbnum; /* 创建多少个数据库,由服务器配置的database选项决定,默认为16个数据库,0-15 */…
redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移   2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间.  这个数组不占用任何内存,意味着这样的结构节省空间: 该数组的内存地址就和他后面的元素的地址相同,意味着无需初始化,数组名就是后面元素的地…
ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用程序应该只有一个ConnectionMultiplexer 类的实例.上一章中StackExchangeRedisHelper 的相关代码如下 private static ConnectionMultiplexer _instance = null; /// <summary> /// 使用一个…
redis启动: 直接 redis-server.exe 启动服务,是按照redis默认配置启动的,如果想按照自己的配置文件启动,要加上 redis-server.exe  redis.windows.config 一.redis读写键空间时的维护操作 在读取一个键后(读和写操作都要对键进行读取),服务器会根据键是否存在更新键空间命中(hit)和不命中(miss)次数. 在读取一个键后,服务器会更新键的LRU时间(最后一次使用时间),这个可以用来计算键的闲置时间. 在读取一个键时发现键已过期,则…
集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.   1.节点 一个节点就是一个运行在集群模式下的Redis服务器.启动Redis服务器时,通过判断cluster-enabled选项,选择是否开启集群模式.(Yes开启集群,No则单机模式普通服务器)   一个Redis集群由多个节点组成,每个节点使用的端口各不相同,可以设置.每个节点最开始可以看做一个只有自己节点的集群,节点间通过命令相互握手,组建集群   握手命令 cluster meet //与ip为127.0.0…
redis怎么在java中使用,那就是要用到jedis了,jedis是redis的java版本的客户端实现,原本原本想上来就直接学spring整合redis的,但是一口吃个胖子,还是脚踏实地,从基础开始学起,写个简单demo,初步了解一下. 首先导入jedis的jar包,我这里用的maven,导入jedis的依赖如下: <dependencies> <dependency> <groupId>redis.clients</groupId> <artif…
本文不涉及集群搭建操作 关于在lua脚本中操作redis的应用场景 大家都知道redis对于单个集合的操作是原子性的;但是有可能有一种场景是这样.比如说抢红包,现在有十个人抢五份红包,抽象到我们java代码里就是十个线程争抢五份资源, 而这个逻辑如果使用redis操作的话,是需要进行多步骤的数据增改操作,但是因为是多步骤,所以在第一个步骤或第二个步骤进行操作的时候redis都没任何问题,但是第三步可能就失败了.但因为不是原子性的,第一个步骤和第二个就不会回滚,数据就会不一致,但其它线程也不知道,…
1. 在centos下安装g++,如果输入 yum install g++,那么将会提示找不到g++.因为在centos下g++安装包名字叫做:gcc-c++ 所以应该输入 yum install gcc-c++,即可. 2. You need tcl 8.5 or newer in order to run the Redis test make: *** [test] Error 1 wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src…
概述 指将一台redis服务器上的数据,复制到其他redis服务器上,前者称为主服务器(master),后者称为从服务器(slave). 默认情况下主从关系为一对多关系. 数据复制是单向的,只能从主服务器到从服务器. 作用 1.数据备份:是持久化之外的一种数据备份手段. 2.负载均衡:配合主从读写分离分担单点服务器负载压力,提高redis服务器并发量. 3.高可用基础:是哨兵和集群实施的基础. 开启主从复制 1.配置文件:从服务器配置中加入 slaveof <masterip> <mas…
转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string,list ,set ,sorted set 和hash . Redis本质上一个key-value db,所以我们首先来看看他的key.首先key也是字符串类型,但是key中不能包括边界字符.由于key不是binary safe的字符串,所以像"my key"和"mykey\n&…
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程字段服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.同大多数脚本语言中的字典一样,Redis字典中的键值除了可以是字符串,还可以是其他的数据类型.到目前为止Redis支持的键值数据类型如下: (1)字符串类型(String) (2)散列类型(Hash) (3)列表…
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import redis, json, re, time import MySQLdb import MySQLdb.cursors HOST = "127.0.0.1" USER = "db username" PASSWD = "your password"…
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://github.com/dmajkic/redis/downloads 如redis-2.4.5-win32-win64.zip下载完后将其解压放在自己要放的目录下如果你是32位的话就进32bit的文件夹,64位就进64bit文件夹 文件夹进去后会看到几个文件:redis-benchmark.exe: 性能…
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) string 类型是 redis 最基本的类型,很多人说如果去除本地持久化,只使用 string 的话,那 redis 就是一个 memcached.string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据.string 类型是二进制安全的,这也意味着…
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是使用双向链表实现的,所以操作列表两端的字符串速度会很快. 2.命令 1)向列表两端添加元素 LPUSH key value [value...] RPUSH key value [value...] LPUSH  key value [value...] 是向列表左边添加元素,添加多个元素的话依次向…
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞sharding,现在方便多了,直接上cluster功能就行了,而且还支持节点动态添加.HA.节点增减后缓存重新分布(resharding). 下面是参考官方教程cluster-tutorial 在mac机上搭建cluster的过程: 一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http:…
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hashs(哈希类型).这些数据类型都 支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排 序.与memcached一样,为了保证效率,数据都是缓存在内存中.…
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name(key)和liushijie(key)就存储在SDS中. SDS数据结构如下: struct sdshdr { // 所保存字符串的长度 int len; // 未使用字节长度 int free; // 字节数组,保存字符串 char buf[]; }; SDS遵循C字符串以'\0'空字符串结尾的惯例,所…
redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先到这里下载Stable稳定版,目前最新版本是2.8.17 1.2 上传到linux,然后运行以下命令解压 tar xzf redis-2.8.17.tar.gz 1.3 编译 cd redis-2.8.17make 注:make命令需要linux上安装gcc,若机器上未安装gcc,redhat环境下…
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redis-x64-3.2.100.zip. 如下图 二.启动Redis的方式 Redis服务启动有两种方式,第一种方式是利用redis.windows.conf配置文件,通过DOC窗口打开:第二种方式利用配置文件redis.windows-service.conf将redis设置成服务.第一种方式虽然启动…
Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型.下面就是不同类型所对应的常见redis命令: 一.在哪里敲命令? 1.我们可以在redis-cli.exe中敲这些命令. 2.上篇博客Redis学习笔记(2)——Redis的下载安装部署,我们介绍了一个工具Redis-Desktop-Manager,我们可以在该工具的控制台敲命令. 二…
一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库(NO-SQL数据库),并提供多种语言的API. 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型. 二.Redis特点 1.Redis支持数据的持久化,Red…
Redis学习笔记(1)- CentOS 6.4 安装Redis 2013.10.13     学习环境 vm 10.1 + 默认.新装的干净 CentOS 6.4  64BIT系统     准备 1. redis 2.6.16版     http://download.redis.io/releases/redis-2.6.16.tar.gz     安装计划及具体步骤笔记   一.计划 1. 下载redis稳定版本 2. 解压并安装redis,并放入合理的目录中 3. 手工启动redis,测…
redis学习笔记第三部分 --redis持久化介绍,事务,主从复制 三,redis的持久化 RDB(Redis DataBase)AOF(Append Only File) RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里. Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件.整个过程中,主进程是不进行任何IO操作的,这…
redis学习笔记第二部分 --配置文件介绍 二,解析redis的配置文件redis.conf常见配置参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程  daemonize yes2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定  pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为…
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: redis 学习笔记(1)-编译.启动.停止 二.建6个目录 ? 1 2 mkdir ~/app/redis-cluster/  #先建一个根目录 mkdir 7000 7001 7002 7003 7004 7005 注:与大多数分布式中间件一样,redis的cluster也是依赖选举算法来保证集群的高…
redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf.一般情况下,会单独拷贝出来一份进行操作.来保证初始文件的安全 config get * # 获取全部的配置 include部分 组合多个配置.和Spring配置文件类似,可以通过includes包含,redis.conf 作为总文件,可以包含其他配置文件! network网络部分 网络…
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redis学习笔记中Redis的按照方式按照后,Redis的配置文件是/etc/redis/6379.conf.下面是Redis2.8.9的配置文件各项的中文解释. #daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize ye…