redis 2 字符串 和 hash
string是最简单的类型,一个key对应一个value,string类型是二进制安全的。redis的string可以包含任何数据,比如JPG图片或者序列化的对象
操作
set
设置key对应的值为string类型的value
例如:
set name haoxing //设置key为那么value为haoxiang
get name //会得到“haoxiang”
注意:
set 重复添加相同的key名会覆盖原来的值
setnx
设置key对应的值为string类型的value,如果key不存在添加,存在返回0
例如:
setnx name lamp //就会返回0 如果没有存在这个key 成功返回1
setex
设置key对应的值为string类型的value,并制定此键值对对应的有效期
例如:
setex color 10 red
get color //十秒内能得到值 返回"red"
get color //十秒后获取不到 返回(nil) 表示空
setrange
替换一个key对应的字符串的部分
例如:
set email haoxiang@wolecha.com
get email //"haoxiang@wolecha.com"
setrange email 9 163.com
get email //"haoxiang@163.com.com"
注意:
替换是从第9个开始替换你写的新的字符串的长度,如果小于原字符串长度,只替换对应的字节数,并保留后面的内容
mset
一次设置多个key的值,成功返回ok 表示所有的值都设置了,失败返回0表示没有任何值被设置
例如:
mset key1 haoxiang1 key2 haoxiang2
注意:
和set一样有相同的key 会被覆盖
msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何被设置,但不会覆盖已经存在的key,所有的值都不重读才成功
get
返回key对应的value的值,如果key不存在返回 nil
例如:
get name
getset
设置key 的值,并返回key对应的value的旧值
例如:
set num 20
get num //"20"
getset num 30 //"20"
get num //"30"
getrange
获取key的对应value字符串的部分
例如:
set eamil haoxiang@163.com
get email 0 7 //"haoxiang"
mget
批量获取,如果key不存在返回nil
incr
对key对应的value值做加加操作,并返回新的值
例如:
set num 30
incr num //(integer)31
incrby
通incr类似,不过是加指定的数值,key 不存在会设置key,并认为原来的值得value是0,正为加,负为减
例如:
incrby num 5
incrby num -5
decr
对value值做减减操作
decrby
减指定的值,正为减,负为加
append
对value值后面追加字符串,返回新的字符串长度
strlen
获取key 对应的value的字符串长度
hash类型及操作
redis hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个的string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
hset
设置hash filed为指定值,如果key不存在,则先创建
例如
hset myhash filed1 hello //其中myhash是hash表的名称,filed1是字段,hello是字段对应的值
hsetnx
设置hash field为指定值,如果key不存在,则先创建,存在返回0,和setnx 大同小异
hmset
批量设置hash的多个字段的值
例如:
hmset myhash field1 hello field2 world
hget
获取hash中某个字段的值
例如:
hget myhash field1
hmget
同时获取多个字段的值
例如:
hmget myhash field1 field2 field3
hincrby
指定的hash field 加上指定的值
例如:
hincrby myhash age 8
hexists
测试hash表中的字段是否存在,存在返回1,不存在返回0
例如:
hexists myhash age
hlen
返回hash表中字段的数量
例如:
hlen myhash
hkeys
返回hash中所有的字段
例如:
hkeys myhash
hvals
返回hash中的所有value
例如:
hvals myhash
hgetall
获取hash中全部的字段及对应的value
例如:
hgetall myhash
hdel
删除hash中的指定字段
例如:
hdel myhash age
redis 2 字符串 和 hash的更多相关文章
- redis 实践—— sorted set, hash set
在这里就不谈redis的安装与启动啦,网上太多人写这个了. 从最近的一个项目[钻石夺宝]说起,如果大家有玩过一元夺宝或者全名夺宝的话,大概会知道如果参与人数多的话,每隔几秒.快的话每隔一秒都会新生成一 ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- 【Redis面试题】Redis的字符串是怎么实现的?
年前本人在找工作面试时在Redis相关问题上可栽了跟头.在面试前按常规套路准备了一下,比如 Redis 的常用5种数据结构,Redis持久化策略,Redis实现分布式锁,简单发布订阅等等都准备了,当时 ...
- redis之字符串命令源代码解析(二)
形象化设计模式实战 HELLO!架构 redis命令源代码解析 在redis之字符串命令源代码解析(一)中讲了get的简单实现,并没有对 ...
- redis数据类型-字符串类型
Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...
- Redis 操作字符串数据
Redis 操作字符串数据: > set name "Tom" // set 用于添加 key/value 数据,如果 key 存在则覆盖 OK > setnx nam ...
- 第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
- Redis 数据结构-字符串源码分析
相关文章 Redis 初探-安装与使用 Redis常用指令 本文将从以下几个部分进行介绍 1.前言 2.常用命令 3.字符串结构 4.字符串实现 5.命令是如果操作字符串的 前言 平时在使用 Redi ...
- mycat1.6.5分片(字符串拆分hash)
https://blog.csdn.net/webnum/article/details/78313525 分片规则:字符串拆分hash 一.conf/schema.xml文件 <?xm ...
随机推荐
- iPad开发中UIPopoverController的使用
什么是UIPopoverController 是iPad开发中常见的一种控制器 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来 ...
- 深入浅出Ajax(四)
function initPage() { btn.onmouseover = buttonOver; btn.onmouseover = buttonOut; } 如上,浏览器只会运行指定的最后一个 ...
- 关于WebAPI安全认证的问题
之前项目遇到了一个对外提供API的问题,有些粗浅的想法,抽空记录下. 以下所讨论的都是要解决:谁有资格调用这个API的问题(谁有权限进行这个操作的问题) 为了简化思路,就拿一个查看Java班级的学生举 ...
- windows下强大的wmic命令行工具
windows最令网管诟病的地方就是命令行没有unix和linux强大.但这种情况正在不断改观,windows命令行也越来越强大了.其中,微软耗费大量精力打造的wmi就是一例. 获得进程ID与进程名 ...
- android usb挂载分析
http://blog.csdn.net/new_abc/article/details/7409018
- html 自定义标签的作用
比如早期的时候,如果浏览器不支持 nav 这个标签的话, style标签中的样式 nav {color: yellow}会不起作用,字体不会变黄. 怎么处理兼容性呢? 用 javascript. 加上 ...
- ural1019 Line Painting
Line Painting Time limit: 2.0 secondMemory limit: 64 MB The segment of numerical axis from 0 to 109 ...
- fuel 6.1自动推送3控高可用centos 6.5 juno环境排错(二)
https://docs.mirantis.com/openstack/fuel/fuel-6.1/ 由于在测试高可用时,我是用esxi虚拟机测试,测试过程中遇到了网络问题:虚拟机间网络不通,故从网络 ...
- rsync+inotify实现数据的实时备份
一.rsync概述 1.1.rsync的优点与不足 rsync与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需 ...
- hibernate---树状映射
总公司--分公司1, 分公司2 分公司1: 分公司1下部门1, 分公司1下部门2 分公司2: Org.java: package com.bjsxt.hibernate; import java.ut ...