教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang-redis之hash类型简单操作

golang-redis之hash类型简单操作

发布时间:2022-01-21   编辑:jiaochengji.com
教程集为您提供golang-redis之hash类型简单操作等资源,欢迎您收藏本站,我们将为您提供最新的golang-redis之hash类型简单操作资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg>

1:安装redigo

<pre class="prettyprint"><code class=" hljs cs">go <span class="hljs-keyword">get</span> github.com/garyburd/redigo/redis</code></pre>

2:import redigo

<pre class="prettyprint"><code class=" hljs java"><span class="hljs-keyword">import</span> ( <span class="hljs-string">"github.com/garyburd/redigo/redis"</span> )</code></pre>

3:连接redis

<pre class="prettyprint"><code class=" hljs vbscript">c, <span class="hljs-built_in">err</span> := redis.Dial(<span class="hljs-string">"tcp"</span>, <span class="hljs-string">"192.168.2.225:6379"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"connect to redis err"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) return } defer c.Close()</code></pre>

4:命令执行

<pre class="prettyprint"><code class=" hljs php">n,err := c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hset"</span>,<span class="hljs-string">"key"</span>,<span class="hljs-string">"field"</span>,<span class="hljs-string">"value"</span>) <span class="hljs-comment">//写</span> result,err := redis.Values(c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hgetall"</span>,<span class="hljs-string">"key"</span>))<span class="hljs-comment">//读</span></code></pre>

5:hash常见命令

<pre class="prettyprint"><code class=" hljs vbnet">hset(<span class="hljs-keyword">key</span>, field, value):向名称为<span class="hljs-keyword">key</span>的hash中添加元素field hget(<span class="hljs-keyword">key</span>, field):返回名称为<span class="hljs-keyword">key</span>的hash中field对应的value hmget(<span class="hljs-keyword">key</span>, (fields)):返回名称为<span class="hljs-keyword">key</span>的hash中field i对应的value hmset(<span class="hljs-keyword">key</span>, (fields)):向名称为<span class="hljs-keyword">key</span>的hash中添加元素field hincrby(<span class="hljs-keyword">key</span>, field, <span class="hljs-built_in">integer</span>):将名称为<span class="hljs-keyword">key</span>的hash中field的value增加<span class="hljs-built_in">integer</span> hexists(<span class="hljs-keyword">key</span>, field):名称为<span class="hljs-keyword">key</span>的hash中是否存在键为field的域 hdel(<span class="hljs-keyword">key</span>, field):删除名称为<span class="hljs-keyword">key</span>的hash中键为field的域 hlen(<span class="hljs-keyword">key</span>):返回名称为<span class="hljs-keyword">key</span>的hash中元素个数 hkeys(<span class="hljs-keyword">key</span>):返回名称为<span class="hljs-keyword">key</span>的hash中所有键 hvals(<span class="hljs-keyword">key</span>):返回名称为<span class="hljs-keyword">key</span>的hash中所有键对应的value hgetall(<span class="hljs-keyword">key</span>):返回名称为<span class="hljs-keyword">key</span>的hash中所有的键(field)及其对应的value</code></pre>

6:示例
6.1:hset示例

<pre class="prettyprint"><code class=" hljs vbscript">_, <span class="hljs-built_in">err</span> = c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hset"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"bike1"</span>, <span class="hljs-string">"mobike"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"haset failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) }</code></pre>

6.2:hget示例

<pre class="prettyprint"><code class=" hljs vbscript">res, <span class="hljs-built_in">err</span> := c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hget"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"bike1"</span>) fmt.Println(reflect.TypeOf(res)) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hget failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Printf(<span class="hljs-string">"hget value :%s\n"</span>, res.([]byte)) }</code></pre>

6.3:hmset/hmget

<pre class="prettyprint"><code class=" hljs vbscript">_, <span class="hljs-built_in">err</span> = c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hmset"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"bike2"</span>, <span class="hljs-string">"bluegogo"</span>, <span class="hljs-string">"bike3"</span>, <span class="hljs-string">"xiaoming"</span>, <span class="hljs-string">"bike4"</span>, <span class="hljs-string">"xiaolan"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hmset error"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { value, <span class="hljs-built_in">err</span> := redis.Values(c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hmget"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"bike1"</span>, <span class="hljs-string">"bike2"</span>, <span class="hljs-string">"bike3"</span>, <span class="hljs-string">"bike4"</span>)) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hmget failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Printf(<span class="hljs-string">"hmget myhash's element :"</span>) <span class="hljs-keyword">for</span> _, v := range value { fmt.Printf(<span class="hljs-string">"%s "</span>, v.([]byte)) } fmt.Printf(<span class="hljs-string">"\n"</span>) } }</code></pre>

6.4:hincrby

<pre class="prettyprint"><code class=" hljs vbscript">_, <span class="hljs-built_in">err</span> = c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hmset"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"bike2"</span>, <span class="hljs-string">"bluegogo"</span>, <span class="hljs-string">"bike3"</span>, <span class="hljs-string">"xiaoming"</span>, <span class="hljs-string">"bike4"</span>, <span class="hljs-string">"xiaolan"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hmset error"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { value, <span class="hljs-built_in">err</span> := redis.Values(c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hmget"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"bike1"</span>, <span class="hljs-string">"bike2"</span>, <span class="hljs-string">"bike3"</span>, <span class="hljs-string">"bike4"</span>)) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hmget failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Printf(<span class="hljs-string">"hmget myhash's element :"</span>) <span class="hljs-keyword">for</span> _, v := range value { fmt.Printf(<span class="hljs-string">"%s "</span>, v.([]byte)) } fmt.Printf(<span class="hljs-string">"\n"</span>) } }</code></pre>

6.5:hexists

<pre class="prettyprint"><code class=" hljs vbscript">isExist, <span class="hljs-built_in">err</span> := c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hexists"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"tmpnum"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hexist failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Println(<span class="hljs-string">"exist or not:"</span>, isExist) }</code></pre>

6.6:hlen

<pre class="prettyprint"><code class=" hljs vbscript">ilen, <span class="hljs-built_in">err</span> := c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hlen"</span>, <span class="hljs-string">"myhash"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hlen failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Println(<span class="hljs-string">"myhash's len is :"</span>, ilen) }</code></pre>

6.7:hkeys

<pre class="prettyprint"><code class=" hljs vbscript">resKeys, <span class="hljs-built_in">err</span> := redis.Values(c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hkeys"</span>, <span class="hljs-string">"myhash"</span>)) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hkeys failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Printf(<span class="hljs-string">"myhash's keys is :"</span>) <span class="hljs-keyword">for</span> _, v := range resKeys { fmt.Printf(<span class="hljs-string">"%s "</span>, v.([]byte)) } fmt.Println() }</code></pre>

6.8:hvals

<pre class="prettyprint"><code class=" hljs vbscript">resValues, <span class="hljs-built_in">err</span> := redis.Values(c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hvals"</span>, <span class="hljs-string">"myhash"</span>)) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hvals failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Printf(<span class="hljs-string">"myhash's values is:"</span>) <span class="hljs-keyword">for</span> _, v := range resValues { fmt.Printf(<span class="hljs-string">"%s "</span>, v.([]byte)) } fmt.Println() }</code></pre>

6.9:hdel

<pre class="prettyprint"><code class=" hljs vbscript">_, <span class="hljs-built_in">err</span> = c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"HDEL"</span>, <span class="hljs-string">"myhash"</span>, <span class="hljs-string">"tmpnum"</span>) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hdel failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) }</code></pre>

6.10:hgetall

<pre class="prettyprint"><code class=" hljs vbscript">result, <span class="hljs-built_in">err</span> := redis.Values(c.<span class="hljs-keyword">Do</span>(<span class="hljs-string">"hgetall"</span>, <span class="hljs-string">"myhash"</span>)) <span class="hljs-keyword">if</span> <span class="hljs-built_in">err</span> != nil { fmt.Println(<span class="hljs-string">"hgetall failed"</span>, <span class="hljs-built_in">err</span>.<span class="hljs-keyword">Error</span>()) } <span class="hljs-keyword">else</span> { fmt.Printf(<span class="hljs-string">"all keys and values are:"</span>) <span class="hljs-keyword">for</span> _, v := range result { fmt.Printf(<span class="hljs-string">"%s "</span>, v.([]byte)) } fmt.Println() }</code></pre>

7:结果

完整代码路径

到此这篇关于“golang-redis之hash类型简单操作”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
go-redis使用之String字符串
超全的!Redis的安装和基础操作
REDIS基础, GO语言
PHP操作Redis数据库常用方法(总结)
PHP操作Redis数据库常用方法
php-redis中文文档之五
PHP Redis相关操作大全
PHP-redis中文帮助文档
三分钟读懂redis数据库
redis基础问答

[关闭]
~ ~