redis之string数据类型常用方法总结
redis 字符串(string)【需要掌握】
特点
- 一个键能存储512MB数据
- string类型是二进制安全的,可以存储任何数据,比如jpg图片或序列化对象
redis字符串数据类型的相关命令用于管理redis字符串值,基本语法如下:
语法
set key values 设置指定 key 的值
127.0.0.1:6379> set name panlifu
OK
127.0.0.1:6379> get name
"panlifu"
get key 获取指定key的值
127.0.0.1:6379> set name panlifu
OK
127.0.0.1:6379> get name
"panlifu"
getrange key start end 返回key中字符串的子字符,类似python中的切片功能,不同在于redis顾头顾尾
127.0.0.1:6379> set name panlifu
OK
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> GETRANGE name 0 3
"panl"
getset key value 将给定key的值设为value,并返回key的旧值(old value)
127.0.0.1:6379> set name panlifu
OK
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> GETRANGE name 0 3
"panl"
127.0.0.1:6379> GETSET name lt
"panlifu"
127.0.0.1:6379> get name
"lt"
getbit key offset 对key所储存的字符串值,获取指定偏移量上的位(bit) ?
setbit key offset value 对key所储存的字符串值,设置或清除指定偏移量上的位(bit) ?
mget key1 [key2...]获取所有(一个或多个)给定key的值
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> set age 24
OK
127.0.0.1:6379> get age
"24"
127.0.0.1:6379> get age name
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379> mget name age
1) "panlifu"
2) "24"
127.0.0.1:6379>
setex key secondes value 将值value关联到key,并将key的过期时间设置为secondes(以秒为单位)
# 第一种方法
127.0.0.1:6379> setex name 5 "panlifu"
OK
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get name
(nil) # 第二种方法
127.0.0.1:6379> set name panlifu ex 6
OK
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get name
(nil)
setnx key value 只有在key不存在时设置key的值
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> setnx name panlifu
(integer) 1
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> setnx name lt
(integer) 0
127.0.0.1:6379> get name
"panlifu"
setrange key offset value 用value参数覆写给定key所存储的字符串值,从偏移量offset开始
127.0.0.1:6379> set name "hello world"
OK
127.0.0.1:6379> get name
"hello world"
127.0.0.1:6379> SETRANGE name 6 "redis"
(integer) 11
127.0.0.1:6379> get name
"hello redis"mset key value [key value] 同时设置一个或者多个key -value对
127.0.0.1:6379> mset name panlifu age 18
OK
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get age
"18"msetnx key value [key value] 同时设置一个或者多个key-value对,当且仅当所有给定key都不存在
127.0.0.1:6379> msetnx sex boy height 120
(integer) 1
127.0.0.1:6379> get sex
"boy"
127.0.0.1:6379> get height
"120"
127.0.0.1:6379> msetnx name lt age 17
(integer) 0
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> get age
"18"总结:key前面有m一般都指 可以设置多个 键值对。 键后面带nx 一般表示 只有当key不存在时,才能设置该key。
strlen key 返回 key 所储存的字符串值的长度
127.0.0.1:6379> get name
"panlifu"
127.0.0.1:6379> strlen name
(integer) 7
psetex key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位
127.0.0.1:6379> psetex name 1000 hehe
OK
127.0.0.1:6379> get name
"hehe"
127.0.0.1:6379> get name
(nil)
总结:当键以ex结尾时,一般表示设置 key的过期时间,单位为秒。当键前面有p且后面有ex时,也表示设置key过期时间,单位为毫秒
incr key 将key中存储的数字值增1
127.0.0.1:6379> set age 19
OK
127.0.0.1:6379> get age
"19"
127.0.0.1:6379> incr age
(integer) 20
127.0.0.1:6379> incr age
(integer) 21
127.0.0.1:6379> get age
"21"
127.0.0.1:6379> set age "19"
OK
127.0.0.1:6379> get age
"19"
127.0.0.1:6379> incr age
(integer) 20
127.0.0.1:6379> incr age
(integer) 21
127.0.0.1:6379> get age
"21"
127.0.0.1:6379> incr age
(integer) 22
127.0.0.1:6379> get age
"22"
127.0.0.1:6379> type age
string
总结:string数据类型中的数据,value的数据类型都是string类型。只要string全为数字,即可使用incr键
incrby key increment 将key所储存的值加上给定的浮点增量值
127.0.0.1:6379> get age
"27"
127.0.0.1:6379> incrby age 3
(integer) 30
127.0.0.1:6379> get age
"30"
incrbyfloat key increment 将 key 所储存的值加上给定的浮点增量值(increment) 。
127.0.0.1:6379> get age
"30"
127.0.0.1:6379> incrbyfloat age 1.5
"31.5"
127.0.0.1:6379> get age
"31.5"
decrby key decrement key 所储存的值减去给定的减量值(decrement)
127.0.0.1:6379> incrbyfloat age -1.5
"30"
127.0.0.1:6379> decrby age 5
(integer) 25
127.0.0.1:6379> get age
"25"
decr key 将 key 中储存的数字值减一。
append key value 果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。
127.0.0.1:6379> get age
"25"
127.0.0.1:6379> append age hehe
(integer) 6
127.0.0.1:6379> get age
"25hehe"
redis之string数据类型常用方法总结的更多相关文章
- Redis学习-string数据类型
Redis 是一个开源的使用 ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志 型.Key-Value 数据库. redis提供五种数据类型string,hash,list,set及sor ...
- Redis 对String数据类型的操作
Redis的 Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...
- redis学习--String数据类型。
本文摘自:http://www.cnblogs.com/stephen-liu74/archive/2012/03/14/2349815.html 一.概述: 字符串类型是Redis中最为基础的数据存 ...
- 二、Redis基本操作——String(实战篇)
小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...
- 5、Redis五大基本数据类型——String类型
一.Redis支持数据类型简介 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 二.String类 ...
- redis有string,hash,list,sets.zsets几种数据类型
1.string数据类型 可包含任何数据,是二进制安全的,比如图片或者序列化的对象set key valueset name hkset age 20get name 得到"hk" ...
- laravel-- 在laravel操作redis数据库的数据类型(string、哈希、无序集合、list链表、有序集合)
安装redis和连接redis数据库 在controller头部引入 一.基本使用 public function RedisdDbOne() { // 清空Redis数据库 Redis::flush ...
- 一、Redis基本操作——String(原理篇)
小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ...
- Redis常用五大数据类型
1.String(字符串) string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个red ...
随机推荐
- 初始Linux软硬链接
转载 https://blog.csdn.net/libaineu2004/article/details/85918682 用实践让你明白"软链接"和"硬链接" ...
- netty(一)---服务端源码阅读
NIO Select 知识 select 示例代码 : //创建 channel 并设置为非阻塞 ServerSocketChannel serverChannel = ServerSocketCha ...
- 【MySQL】外键的变种
" 目录 三种关系 多对一 多对多 一对一 因为有foreign key的约束,使得两张表形成了三种关系: 多对一 多对多 一对多 重点理解如何找出两张表之间的关系 现在有A.B两张表 分析 ...
- Windows配置本地Hadoop运行环境
很多人喜欢用Windows本地开发Hadoop程序,这里是一个在Windows下配置Hadoop的教程. 首先去官网下载hadoop,这里需要下载一个工具winutils,这个工具是编译hadoop用 ...
- Docker for YApi--一键部署YApi
获取YApi镜像$ docker pull mrjin/yapi:latest 注意:本仓库目前只支持安装,暂不支持升级,请知晓.如需升级请备份mongoDB内的数据. docker-compose ...
- element table批量删除
很小的一个问题,但是有细节需要注意 (1)问题:在起初我写的时候是根据元素的name是否相同判断是否是同一个节点,出现的问题就是,如果说两个元素的name相同,就会判断出错 (2)代码: <te ...
- PHPStorm 使用 Xdebug
一.下载xdebug xdebug官网:https://xdebug.org/download.php 在选择下载哪个版本的xdebug的时候需要注意了,下面有两种方法,让你准确的下载自己环境对应的x ...
- php海量架构
架构 Varnish+nginx+php(FastCGI)+MYSQL5+MenCache+MenCachedb 说明:我在设计系统架构时,进行了大胆的尝试,只用6台Web服务器,达到了可承受4000 ...
- Chrome的一个问题
报错:Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extensi ...
- springboot默认创建的bean是单实例
默认是单例 通过注解@Scope("prototype"),将其设置为多例模式 参考: 曾经面试的时候有面试官问我spring的controller是单例还是多例,结果我傻逼的回答 ...