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 ...
随机推荐
- iOS 开发之 SDWebImage 底层实现原理分析
SDWebImage 是一个比较流行的用于网络图片缓存的第三方类库.这个类库提供了一个支持缓存的图片下载器.为了方便操作者调用,它提供了很多 UI 组件的类别,例如:UIImageView.UIBut ...
- Shiro入门学习与实战(一)
一.概述 1.Shiro是什么? Apache Shiro是java 的一个安全框架,主要提供:认证.授权.加密.会话管理.与Web集成.缓存等功能,其不依赖于Spring即可使用: Spring S ...
- 【Go语言系列】1.1、GO语言简介:什么是GO语言
一.Go的起源 Go语言的所有设计者都说,设计Go语言是因为 C++ 给他们带来了挫败感.在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的: 我们做了大量的 ...
- Kubernetes的控制器之Deployment的定义
Deploy 的控制器定义参数介绍 [root@master manifests]# kubectl explain deploy KIND: Deployment VERSION: extensio ...
- 全排列next_permutation()用法和构造函数赋值
全排列next_permutation()用法 在头文件aglorithm里 就是1~n数组的现在的字典序到最大的字典序的依次增加.(最多可以是n!种情况) int a[n]; do{ }while( ...
- dp-简单迷宫捡金币
链接:https://ac.nowcoder.com/acm/challenge/terminal 吃货LP参加了珠海美食节,每见一家摊位都会大吃一顿,但是如果不加收敛,接下来的日子就只能吃土了,所以 ...
- 解决:使用 swiper 自动轮播图片,当拖动过 swiper 内的内容时,导致不继续自动轮播
版本为1.3 当使用了 swiper 后: var mySwiper = new Swiper('.banner .swiper-container', { autoplay: 3000, loop: ...
- pip使用技巧
1. pip install 'easydict==1.6' --force-reinstall 强制安装制定version 2. pip install git+https://github.com ...
- 使用python实现离散时间傅里叶变换
以下内容引用链接:https://blog.csdn.net/baidu_37352210/article/details/79596633 (注意:通过如下内容可知,将序列信号进行傅里叶变换后,得到 ...
- 「学习笔记」FFT 快速傅里叶变换
目录 「学习笔记」FFT 快速傅里叶变换 啥是 FFT 呀?它可以干什么? 必备芝士 点值表示 复数 傅立叶正变换 傅里叶逆变换 FFT 的代码实现 还会有的 NTT 和三模数 NTT... 「学习笔 ...