Redis简述

文章目录

4.数据库操作

redis是key-value的数据结构,每条数据都是⼀个键值对,键的类型是字符串,且键唯一,不允许重复

redis的key和value数据结构示意

Redis的键是唯一的,且必然是字符串
按照对应的值的类型可以划分为五种:
1. String --> 字符串
2. Hash --> 哈希
3. List --> 列表
4. Set --> 集合
5. ZSet --> 有序集合
Redis的操作行为:
1.保存
2.修改
3.获取
4.删除

4.2.String类型–值类型

  • Redis的键类型都是string类型的
  • 字符串类型是Redis中最为基础的数据存储类型,该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M

4.2.1.增加/修改

如果设置的键key存在,则是对键进行修改,如果设置的键不存在,则是进行新增保存操作

4.2.1.1. 设置单个键值对形式
set key value

example:设置key为name,value为jack的数据

set name jack 

设置key为name,value为jack的数据

4.2.1.1.2.设置之前先判断
  • 将key设置值为value,如果key不存在,这种情况下等同SET命令。 当key存在时,什么也不做。SETNX是”SET if Not eXists”的简写。
setnx key value

example:判断当前是否有键为k1的,如果没有就创建

setnx k1 hello

设置前先判断

4.2.1.3. 设置多个键值对形式
mset key1 value1 key2 value2 key3 value3 key4 value4

example:设置k1为张三,k2为李四,k3为王五,k4为马六

mset k1 张三 k2 李四 k3 王五 k4 马六

设置k1为张三,k2为李四,k3为王五,k4为马六

|中文乱码问题的解决|

  • 1.退出redis客户端
exit
  • 2.再次进入redis客户端
redis-cli --raw

解决redis客户端的乱码问题

4.2.1.4.追加值
append key value
  • 向已经存在的键追加值
    example:向键为name的键值对中追加值rose
append name rose

向已经存在的键追加值

  • 向不存在的键追加值 ==【新增】

example:向不存在的键kk追加值rose

append kk rose

向不存在的键追加值等价于新增

4.2.1.5.设置值的同时设置过期时间–以【秒】为单位设置过期时间
setex key seconds value

设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期。这个命令等效于执行下面的命令:

SET key value
EXPIRE key seconds

SETEX是原子的,也可以通过把上面两个命令放到MULTI/EXEC块中执行的方式重现。相比连续执行上面两个命令,它更快,因为当Redis当做缓存使用时,这个操作更加常用。
example:设置key为name,value为jack的数据,10秒时候过期

setex name 10 jack 

设置过期时间的

4.2.1.6.设置值的同时设置过期时间–以【毫秒】为单位设置过期时间

psetex和setex的功能一样, 唯一的区别是到期时间以毫秒为单位,而不是秒。

psetex key milliseconds value

使用psetex设定以毫秒值为过期时间的设置

4.2.2.获取操作

获取:根据【键】获取【值】,如果不存在该【键】,则返回【nil】
4.2.2.1.获取单个值
get key

example:获取键为name的值

get name

获取键为name的值

4.2.2.2.获取多个值
	获取多个键的值:根据多个键获取多个值
mget key1 key2 key3 key4

example:根据键为k1,k2,k3,k4获取对应的值

mget k1 k2 k3 k4

根据键为k1,k2,k3,k4获取对应的值

4.2.2.3.获取不存在的键的值
  • |使用redis-cli --raw方式启动的客户端获取到的是空的字符串|
get key[不存在]
get a1

使用redis-cli --raw方式启动的redis的客户端获取到的是一个空的字符串

mget m1 m2 m3 m4

使用redis-cli --raw方式启动的redis的客户端获取的是n个空的字符串

  • |使用redis-cli 方式启动的客户端获取到的是nil|
get key[不存在]
get a1

使用redis-cli启动的客户端获取的是nil

mget m1 m2 m3 m4

使用redis-cli方式启动的redis获取的多个nil

4.2.3.删除操作

删除操作:只能根据来删除,删除的同时会一并将删除

4.2.3.1.删除单个键的操作

del key

|以redis-cli --raw的方式启动的客户端|
example:删除键为name的键值对

del name

删除键=name的操作
|以redis-cli的方式启动的客户端|
example:删除键为name的键值对

del name

删除键=kk的键值对

4.2.3.2.删除多个键的操作

del key1 key2 key3 key3

|以redis-cli --raw方式启动的客户端|
example:删除键为k1,k2,k3,k4的键值对

del k1 k2 k3 k4

以redis-cli --raw的方式启动的redis的客户端删除多个键操作
|以redis-cli方式启动的客户端|
example:删除键为k1,k2,k3,k4的键值对

del k1 k2 k3 k4

yiredis-cli方式启动的删除多个键

4.2.3.3.删除不存在的键的操作

del key[key不存在]

|以redis-cli --raw方式启动的客户端|
example:删除不存在的键kk

del kk

以redis-cli --raw的方式启动的客户端删除不存在的键会返回0
以redis-cli --raw的方式启动的客户端删除多个不存在的键
|以redis-cli方式启动的客户端|
example:删除不存在的键kk

del kk

以redis-cli方式启动的redis的客户端删除不存在的值会返回0值
删除多个不存在的键
在删除多个键的时候,有某个键或者某几个键不存在的情况
删除多个键的时候,有某个键或者几个键不存在的情况

4.3.hash类型–值类型

  • Redis的键类型都是string类型的
  • hash⽤于存储对象,对象的结构为属性、值【值的类型为string】
  • 对象结构: 键[string类型] 属性字段[object/interface类型] 值[string类型]

4.3.1.增加/修改

如果设置的键key存在,则是对键进行修改,如果设置的键不存在,则是进行新增保存操作

4.3.1.1. 设置单个属性
hset key field value

设置 key 指定的哈希集中指定字段的值。
如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。
如果字段在哈希集中存在,它将被重写。
返回值:
1.如果field是一个新的字段,返回1
2.如果field原来在map里面已经存在,返回0

example : 新建一个key=user,属性字段filed=name,value=rose的用户对象

hset user name rose

新建一个对象,设置单个属性

4.3.1.1. 设置多个属性
hmset key field value [field value ...]

设置 key 指定的哈希集中指定字段的值。
该命令将重写所有在哈希集中存在的字段。
如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联

example :设定用户对象:name= rose,age =18,gender=woman,salary=15k

hmset user name rose age 18 gender woman salary 15k

设定用户对象,并设定多个属性

4.3.2.获取

4.3.2.1. 获取对象的全部属性【根据键获取属性字段】
hkeys key

返回 key 指定的哈希集中所有字段的名字。
返回值:
哈希集中的字段列表,当 key 指定的哈希集不存在时返回空列表。

example:获取用户对象【键为user】的所有属性

hkeys user

获取用户对象的全部属性

4.3.2.2. 获取对象的属性个数【根据key获取field个数】
hlen key

返回 key 指定的哈希集包含的字段的数量。
返回值:
哈希集中字段的数量,当 key 指定的哈希集不存在时返回 0

example:获取用户对象的属性个数

hlen user

获取用户对象的属性个数

4.3.2.3.获取对象【key】所有的字段【field】和值【value】
hgetall key

返回 key 指定的哈希集中所有的字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍。

返回值:

哈希集中字段和值的列表。当 key 指定的哈希集不存在时返回空列表。

example:获取用户对象所有的属性字段和对应的属性值

hgetall user

获取用户对象所有的属性字段和属性值

4.3.2.4. 获取单个属性的值
hget key field

返回 key 指定的哈希集中该字段所关联的值
返回值:
该字段所关联的值。当字段不存在或者 key 不存在时返回nil。

example:获取用户对象的名字

hget user name

获取单个属性的值

4.3.2.5. 获取多个属性的值
hmget key field [field ...]

返回 key 指定的哈希集中指定字段的值。
对于哈希集中不存在的每个字段,返回 nil 值。因为不存在的keys被认为是一个空的哈希集,对一个不存在的 key 执行 HMGET 将返回一个只含有 nil 值的列表
返回值:
含有给定字段及其值的列表,并保持与请求相同的顺序。

example:获取用户对象的名字、年龄、薪水属性

hmget user name age salary

获取多个属性的值

4.3.2.6. 获取全部属性的值
 hvals key

返回 key 指定的哈希集中所有字段的值。
返回值:
哈希集中的值的列表,当 key 指定的哈希集不存在时返回空列表。

example:获取用户对象的所有属性的值

hvals user

获取用户对象的所有属性的值

4.3.3.删除

删除属性,属性对应的值会被⼀起删除
删除整个hash键及值,使⽤del命令

4.3.3.1. 删除单个属性
hdel key field [field ...]

删除一个或者多个hash的field

从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。
如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0。
返回值:
返回从哈希集中成功移除的域的数量,不包括指出但不存在的那些域
历史:
在 2.4及以上版本中 :可接受多个域作为参数。小于 2.4版本 的 Redis 每次调用只能移除一个域 要在早期版本中以原子方式从哈希集中移除多个域,可用 MULTI/EXEC块。

example:删除user对象的salary和age字段

hdel user salary age

删除user对象的salary和age字段

4.3.3.2. 删除所有属性-删除对象-删除hash
 del key [key ...]

example:删除用户对象,删除所有的属性字段和对应的值

del user

删除用户对象,删除hash

4.4.list类型–值类型

列表的元素类型为string
按照插⼊顺序排序

4.4.1.新增、追加

4.4.1.1.从list左侧【头部】插入-lpush
lpush key value [value ...]

将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。
可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。元素是从最左端的到最右端的、一个接一个被插入到 list 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。
返回值:
在 push 操作后的 list 长度。

example:创建一个list,名为a1,并从左侧【头部】插入数据a,b,c

lpush a1 a b c 

创建一个list,名为a1,并从左侧插入数据a,b,c

4.4.1.2.从list右侧【尾部】插入-rpush
rpush key value [value ...]

向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误。
可以使用一个命令把多个元素打入队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。 比如命令 RPUSH mylist a b c 会返回一个列表,其第一个元素是 a ,第二个元素是 b ,第三个元素是 c。
返回值:
在 push 操作后的列表长度。

example:创建一个list,名为b1,并从右侧【尾部】插入数据x,y,z

rpush b1 x y z

创建一个list,名为b1,并从右侧【尾部】插入数据x,y,z

4.4.1.3.在指定元素的前 、 后插⼊新元素
linsert key BEFORE|AFTER pivot value
pivot 表示现有值、历史值,value 表示新插入的数据

把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。
当 key 不存在时,这个list会被看作是空list,任何操作都不会发生。
当 key 存在,但保存的不是一个list的时候,会返回error。
返回值:
经过插入操作后的list长度,或者当 pivot 值找不到的时候返回 -1。

example:在a1的list中的b的前面出入数据3

linsert a1 before b 3

在a1的list中的b的前面出入数据3

4.4.2.获取

4.4.2.1.遍历list列表
lrange key start stop

或者

lrange key start -1

返回存储在 key 的列表里指定范围内的元素。 start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。
偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。
在不同编程语言里,关于求范围函数的一致性:
需要注意的是,如果你有一个list,里面的元素是从0到100,那么 LRANGE list 0 10 这个命令会返回11个元素,即最右边的那个元素也会被包含在内。 在你所使用的编程语言里,这一点可能是也可能不是跟那些求范围有关的函数都是一致的。(像Ruby的 Range.new,Array#slice 或者Python的 range() 函数。)
超过范围的下标:
当下标超过list范围的时候不会产生error。 如果start比list的尾部下标大的时候,会返回一个空列表。 如果stop比list的实际尾部大的时候,Redis会当它是最后一个元素的下标。

返回列表⾥指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

example:遍历列表a1的所有列表元素

lrange a1 0 4

遍历list列表a1的所有元素

lrange a1 0 -1

遍历list

4.4.3.修改

4.4.3.1.修改-正索引
lset key index value

设置 index 位置的list元素的值为 value。
当index超出范围时会返回一个error。
返回值:
ok、error

example:设定a1的第二个元素[索引index= 1]的值为bb

lset a1 1 bb

设定a1的第二个元素[索引index= 1]的值为bb

4.4.3.2.修改-负索引
lset key -index value

example:对a1进行索引为-2的进行数据修改为aaaa

lset a1 -2 aaaa

负索引的修改
负索引的次改的位置
负数的索引的修改操作,是遵循的一个逆向操作,从后往前

4.4.3.3.修改-越界
索引越界,不管是正向还是反向的越界,都会被报错

越界报错

4.4.3.4.删除
lrem key count value

从存于 key 的列表里移除前 count 次出现的值为 value 的元素。 这个 count 参数通过下面几种方式影响这个操作:
count > 0: 从头往尾移除值为 value 的元素。
count < 0: 从尾往头移除值为 value 的元素。
count = 0: 移除所有值为 value 的元素。
比如, LREM list -2 “hello” 会从存于 list 的列表里移除最后两个出现的 “hello”。
需要注意的是,如果list里没有存在key就会被当作空list处理,所以当 key 不存在的时候,这个命令会返回 0。
返回值:
被移除的元素个数。

example:

  • 创建一个名为z1的list,并向其头部插入数据a,b,a,b,a,b
lpush z1 a b a b a b
  • 从z1列表右侧开始删除2个b
lrem z1 

从z1列表右侧开始删除2个b

4.5.set类型–值类型

⽆序集合
元素为string类型
元素具有唯⼀性,不重复
说明:对于集合没有修改操作

4.5.1.新建/增加

sadd key member [member ...]

添加一个或多个指定的member元素到集合的 key中.指定的一个或者多个元素member 如果已经在集合key中存在则忽略.如果集合key 不存在,则新建集合key,并添加member元素到集合key中。
如果key 的类型不是集合则返回错误.。
返回值:
返回新成功添加到集合里元素的数量,不包括已经存在于集合中的元素。

example:创建一个集合us,并向其添加jack、tom、rose元素

sadd us jack tom rose

创建一个集合us,并向其添加jack、tom、rose元素

4.5.2.获取
4.5.2.1.单个集合的获取
smembers key

返回key集合所有的元素.
该命令的作用与使用一个参数的SINTER 命令作用相同.
返回值:
集合中的所有元素.
example:查询us集合中的所有元素
查询us集合中的所有元素

4.5.2.2.多个集合的交集获取
sinter key [key ...]

返回指定所有的集合的成员的交集.

example : 求交集

  • 创建一个新的集合us2 ,成员为 a,b ,c ,rose
sadd us2 a b c rose
  • 求us集合和us2 集合的交集
sinter us us2

求us和us2的交集

smembers key 只能查询单个的集合,
sinter key [key ...]使用单个key的情况下可以实现单个集合的遍历,多个集合可以实现拿到交集
4.5.3.删除

删除指定元素

srem key member [member ...]

在key集合中移除指定的元素. 如果指定的元素不是key集合中的元素则忽略 如果key集合不存在则被视为一个空的集合,该命令返回0.
如果key的类型不是一个集合,则返回错误.
返回值:
从集合中移除元素的个数,不包括不存在的成员.

example:删除us2集合中的rose和a成员

srem us2 rose a

删除us2集合中的rose和a成员

4.6.zset类型–值类型

sorted set,有序集合
元素为string类型
元素具有唯⼀性,不重复
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
说明:没有修改操作

4.6.1.新建/增加

zadd key [NX|XX] [CH] [INCR] score member [score member ...]

将所有指定成员添加到键为key有序集合(sorted set)里面。 添加时可以指定多个分数/成员(score/member)对。 如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置。
如果key不存在,将会创建一个新的有序集合(sorted set)并将分数/成员(score/member)对添加到有序集合,就像原来存在一个空的有序集合一样。如果key存在,但是类型不是有序集合,将会返回一个错误应答。
分数值是一个双精度的浮点型数字字符串。+inf和-inf都是有效值。

ZADD 参数(options) (>= Redis 3.0.2)

ZADD 命令在key后面分数/成员(score/member)对前面支持一些参数,他们是:
XX: 仅仅更新存在的成员,不添加新成员。
NX: 不更新存在的成员。只添加新成员。
CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。更改的元素是新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。
INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。

分数可以精确的表示的整数的范围:

Redis 有序集合的分数使用双精度64位浮点数。我们支持所有的架构,这表示为一个IEEE 754 floating point number,它能包括的整数范围是-(2^53) 到 +(2^53)。或者说是-9007199254740992 到 9007199254740992。更大的整数在内部用指数形式表示,所以,如果为分数设置一个非常大的整数,你得到的是一个近似的十进制数。

Sorted sets 101

有序集合按照分数以递增的方式进行排序。相同的成员(member)只存在一次,有序集合不允许存在重复的成员。 分数可以通过ZADD命令进行更新或者也可以通过ZINCRBY命令递增来修改之前的值,相应的他们的排序位置也会随着分数变化而改变。
获取一个成员当前的分数可以使用ZSCORE命令,也可以用它来验证成员是否存在。

相同分数的成员

有序集合里面的成员是不能重复的都是唯一的,但是,不同成员间有可能有相同的分数。当多个成员有相同的分数时,他们将是有序的字典(ordered lexicographically)(仍由分数作为第一排序条件,然后,相同分数的成员按照字典规则相对排序)。
字典顺序排序用的是二进制,它比较的是字符串的字节数组。
如果用户将所有元素设置相同分数(例如0),有序集合里面的所有元素将按照字典顺序进行排序,范围查询元素可以使用ZRANGEBYLEX命令(注:范围查询分数可以使用ZRANGEBYSCORE命令)。

返回值

Integer reply, 包括:
添加到有序集合的成员数量,不包括已经存在更新分数的成员。
如果指定INCR参数, 返回将会变成bulk-string-reply :
成员的新分数(双精度的浮点型数字)字符串。

example:向键’z4’的集合中添加元素’lisi’、‘wangwu’、‘zhaoliu’、‘zhangsan’,权重分别为4、5、6、3

zadd z4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

向键'z4'的集合中添加元素'lisi'、'wangwu'、'zhaoliu'、'zhangsan',权重分别为4、5、6、3

4.6.2.获取

• 返回指定范围内的元素
• start、stop为元素的下标索引
• 索引从左侧开始,第⼀个元素为0
• 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

zrange key start stop [WITHSCORES]

返回存储在有序集合key中的指定范围的元素。 返回的元素可以认为是按得分从最低到最高排列。 如果得分相同,将按字典排序。

当你需要元素从最高分到最低分排列时,请参阅ZREVRANGE(相同的得分将使用字典倒序排序)。
参数start和stop都是基于零的索引,即0是第一个元素,1是第二个元素,以此类推。 它们也可以是负数,表示从有序集合的末尾的偏移量,其中-1是有序集合的最后一个元素,-2是倒数第二个元素,等等。
start和stop都是全包含的区间,因此例如ZRANGE myzset 0 1将会返回有序集合的第一个和第二个元素。
超出范围的索引不会产生错误。 如果start参数的值大于有序集合中的最大索引,或者start > stop,将会返回一个空列表。 如果stop的值大于有序集合的末尾,Redis会将其视为有序集合的最后一个元素。
可以传递WITHSCORES选项,以便将元素的分数与元素一起返回。这样,返回的列表将包含value1,score1,…,valueN,scoreN,而不是value1,…,valueN。 客户端类库可以自由地返回更合适的数据类型(建议:具有值和得分的数组或记录)。

返回值

array-reply:给定范围内的元素列表(如果指定了WITHSCORES选项,将同时返回它们的得分)。

4.6.2.1.全遍获取全部元素
zrange key start stop [WITHSCORES]

example:获取键’z4’的集合中所有元素

zrange z4 0 -1

获取键'z4'的集合中所有元素

4.6.2.2.根据权重值区间获取元素
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

如果M是常量(比如,用limit总是请求前10个元素),你可以认为是O(log(N))。
返回key的有序集合中的分数在min和max之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
具有相同分数的元素按字典序排列(这个根据redis对有序集合实现的情况而定,并不需要进一步计算)。
可选的LIMIT参数指定返回结果的数量及区间(类似SQL中SELECT LIMIT offset, count)。注意,如果offset太大,定位offset就可能遍历整个有序集合,这会增加O(N)的复杂度。
可选参数WITHSCORES会返回元素和其分数,而不只是元素。这个选项在redis2.0之后的版本都可用。

区间及无限

min和max可以是-inf和+inf,这样一来,你就可以在不知道有序集的最低和最高score值的情况下,使用ZRANGEBYSCORE这类命令。
默认情况下,区间的取值使用闭区间(小于等于或大于等于),你也可以通过给参数前增加(符号来使用可选的开区间(小于或大于)。
举个例子:
ZRANGEBYSCORE zset (1 5
返回所有符合条件1 < score <= 5的成员;
ZRANGEBYSCORE zset (5 (10
返回所有符合条件5 < score < 10 的成员。

返回值

array-reply: 指定分数范围的元素列表(也可以返回他们的分数)。

example:获取键’z4’的集合中权限值在5和6之间的成员

zrangebyscore z4 5 6 

获取键'z4'的集合中权限值在5和6之间的成员

4.6.2.3.根据权重值
zscore key member

返回有序集key中,成员member的score值。
如果member元素不是有序集key的成员,或key不存在,返回nil。

返回值

bulk-string-reply: member成员的score值(double型浮点数),以字符串形式表示。

example:获取键’z4’的集合中元素’zhangsan’的权重

zscore z4 zhangsan

获取键'z4'的集合中元素'zhangsan'的权重

4.6.3.删除

4.6.3.1.删除指定元素
zrem key member [member ...]

当key存在,但是其不是有序集合类型,就返回一个错误。

返回值

integer-reply, 如下的整数:
返回的是从有序集合中删除的成员个数,不包括不存在的成员。

example:删除集合’z4’中元素’zhangsan’

zrange z4 0 -1

删除集合'z4'中元素'zhangsan'

4.6.3.1.删除权重在指定范围的元素
zremrangebyscore key min max

移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。 自版本2.1.6开始,score值等于min或max的成员也可以不包括在内,语法请参见ZRANGEBYSCORE命令。

返回值

integer-reply: 删除的元素的个数。

example:删除集合’z4’中权限在5、6之间的元素

zremrangebyscore z4 5 6

删除集合'z4'中权限在5、6之间的元素

5.通过go语言和redis数据库进行交互

5.1.安装go语言支持

go语言支持redis

go get -u -v github.com/gomodule/redigo/redis

安装go语言支持

5.2.go测试与redis交互

安装完成后,回到家目录创建redisTest.go,把下面代码复制到test.go里面,编译执行test.go,之后在redis中查找到键c1值为hello,说明安装成功

package main
import ( "github.com/gomodule/redigo/redis")
func main(){
        conn,_ := redis.Dial("tcp", ":6379")
        defer conn.Close()
        conn.Do("set", "c1", "hello")
}
  • 回到家目录创建redisTest.go文件
    回到家目录
  • 复制粘贴并保存代码
    粘贴代码并保存
  • 执行
go run redisTest.go

测试


Go操作redis文档请参考–使用gomodule包的

https://godoc.org/github.com/gomodule/redigo/redis


“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值