2017年11月

一、事务的描述

MySQL 一样,Redis 中也有事务 这一个概念,redis中的事务也是可以用来执行一组命令的集合,同时也可以把事务当作一个命令。因为它的特性和命令无差,要么正确全部运行,要么错误都不运行。但是和MySQL 的事务不同的是,redis中的事务不支持回滚操作。也就是说,一旦事务出错,它没有办法再回到程序出错前,只能由程序员自己想办法来处理剩下的烂摊子。

- 阅读剩余部分 -

一、概述

redigo 是一个redisgo client ,官方描述为:Redigo is a Go client for the Redis database.

基本特点:

  • 简单的API调用,并支持所有的redis命令。
  • 支持管道、事务、订阅以及连接池。

项目首页:https://github.com/garyburd/redigo/

官方文档:https://godoc.org/github.com/garyburd/redigo/redis

安装:go get github.com/garyburd/redigo/redis

- 阅读剩余部分 -

1:(error) WRONGTYPE Operation against a key holding the wrong kind of value

今天打开redis输入命令zadd k 1 maqian 2 xiaoming 3 xiaohua 报错,百度了一下出现这个问题的原因是已经存在一个别的类型的键k ,把原来的k 删除即可。

127.0.0.1:6379> zadd k 1 maqian 2 xiaoming 3 xiaohua
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> keys *
1) "rs"
2) "dst"
3) "k"  # 已经存在了一个k
4) "k2"
5) "k3"
127.0.0.1:6379> del k
(integer) 1
127.0.0.1:6379> zadd k 1 maqian 2 xiaoming 3 xiaobai
(integer) 3

一、基本操作

有序集合也是集合的一种,顾名思义,它和集合的不同之处在于它是有序的 ,而集合无序。它通过给集合中每一个元素都关联一个分数来是的元素有序,同时提供了多个方式获取排序之后的元素。

1.1 增加和删除元素

增加元素:

ZADD key score member [score member ...]

当key不存在时自动创建,分数支持整数和双精度浮点数,同时还可以使用+inf-inf分别表示正无穷大和负无穷大。执行成功返回添加的元素个数。

删除元素:

ZREM key member [member ...]

移除元素,返回成功移除的个数。

- 阅读剩余部分 -

一、概念和原理

集合是redis中的基本数据类型之一,redis中的集合可以用来存储一堆无序的元素,集合内的元素不会重复,只有存在或者不存在两种属性。

redis集合内部是由intsethashtable实现的,当条件不满足时redis会自动转换内部编码。集合中使用intset的条件:

  1. 集合的所有的元素都是整数
  2. 集合中元素的个数不超过512个

一旦两者的任一条件不满足时,就会转换成hashtable编码。

- 阅读剩余部分 -

一、概述

redis的列表类型可以存储一个有序的字符串列表,内部实现是一个双向链表,允许用户从两端插入元素。所以向两端插入数据的速度是极快的,而且获取数据时也是越接近两端速度越快,一个列表最多能容纳2^32 - 1个元素。

二、命令

2.1 在两端插入元素

  • LPUSH key value [value ...]:在列表的左端插入元素。
  • RPUSH key value [value ...]:在列表的右端插入元素。

返回值表示增加元素后的列表长度。

- 阅读剩余部分 -

一、概述

Redis  本生就是一个字典类型的键值关系数据库,结构为:

而其中还有一种散列类型的数据结构散列,它也是一种字典结构,存储了字段关系的映射。

散列就像是一个小的redis一样,只不过这个小型redis不支持其他类型,只能是字符串。

- 阅读剩余部分 -