redis(一) 安装以及基本数据类型操作
redis(一) 安装以及基本数据类型操作
redis安装和使用
redis安装
wget http://download.redis.io/redis-stable.tar.gz tar zxvf redis-stable.tar.gz cd redis-stable.tar.gz make make install
redis启动
redis-server
redis-cli shutdown
配置
方法一
redis-server /path/to/redis.conf redis-server /path/to/redis.conf --loglevel warning //设置日志级别
方法二
redis-cli redis > CONFIG SET loglevel warning
多数据库的选择
> select 1
数据库基本操作
(1)添加数据和查找数据,通过set/get命令添加和获取数据
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> set bar 1 OK 127.0.0.1:6379[1]> get bar "1" 127.0.0.1:6379[1]> get aaa (nil)
(2)判断一个键是否存在,exists命令可以判断key是否存在,存在返回1,不存在返回0
127.0.0.1:6379[1]> exists bar (integer) 1 127.0.0.1:6379[1]> exists aaa (integer) 0
(3)删除数据,del命令删除key,返回值为成功删除key的个数
127.0.0.1:6379[1]> del aaa (integer) 0 127.0.0.1:6379[1]> del bar (integer) 1
(4)获取value的类型
127.0.0.1:6379[1]> set bar 1 OK 127.0.0.1:6379[1]> type bar string
(5)自增和自减,incr 、decr以及incrby和decrby实现整数的加减
127.0.0.1:6379[1]> INCR ab (integer) 1 127.0.0.1:6379[1]> INCR ab (integer) 2 127.0.0.1:6379[1]> INCRBY ab 2 (integer) 4 127.0.0.1:6379[1]> DECR ab (integer) 3 127.0.0.1:6379[1]> DECRBY ab 2 (integer) 1
(6)增加指定浮点数,incrbyfloat可以指定自增的浮点数
127.0.0.1:6379[1]> INCRBYFLOAT ab 1.1 "2.1"
(7)向尾部追加,append命令可以向字符尾部追加内容
127.0.0.1:6379[1]> set key hello OK 127.0.0.1:6379[1]> append key world (integer) 10 127.0.0.1:6379[1]> get key "helloworld"
(8)获取字符串长度,strlen获取value的长度
127.0.0.1:6379[1]> STRLEN key (integer) 10
(9)批量设置和获取,通过mset和mget命令可以批量执行设置和获取
127.0.0.1:6379[1]> mset key1 va1 key2 va2 OK 127.0.0.1:6379[1]> mget key1 key2 1) "va1" 2) "va2"
(10)位操作
getbit key offset setbit key offset bitcount key [start] [end] bitop operation destkey key [key ...]
散列类型
{"id":1,"name":"test" }
基本操作
(1)存储方法,可以通过hset和hget来设置和获取数据
127.0.0.1:6379[1]> hset user id 1 (integer) 1 127.0.0.1:6379[1]> hset user name test (integer) 1 127.0.0.1:6379[1]> hget user id "1" 127.0.0.1:6379[1]> hget user name "test"
(2)判断字段是否存在,hexists命令,返回1存在,返回0不存在
127.0.0.1:6379[1]> hexists user id (integer) 1 127.0.0.1:6379[1]> hexists user age (integer) 0
(3)使用hsetnx(hset if not exists)如果不存在赋值
127.0.0.1:6379[1]> hsetnx user age 111 (integer) 1 127.0.0.1:6379[1]> hget user age "111"
(4)增加数字
127.0.0.1:6379[1]> hincrby user score 60 (integer) 60 127.0.0.1:6379[1]> hget user score "60"
(5)删除字段
127.0.0.1:6379[1]> hdel user score (integer) 1 127.0.0.1:6379[1]> hget user score (nil)
如何存储数据?
键 字段 字段值 post:id field value
127.0.0.1:6379[1]> incr userid (integer) 1 127.0.0.1:6379[1]> hset user:1 name test (integer) 1 127.0.0.1:6379[1]> hset user:1 score 90 (integer) 1 127.0.0.1:6379[1]> incr userid (integer) 2 127.0.0.1:6379[1]> hset user:2 name test2 (integer) 1 127.0.0.1:6379[1]> hset user:2 score 99 (integer) 1
添加了两条数据,id为1的名字为test分数为90,而id为2的名字为test2分数为90.
127.0.0.1:6379[1]> hmget user:1 name score 1) "test" 2) "90"
127.0.0.1:6379[1]> hgetall user:2 1) "name" 2) "test2" 3) "score" 4) "99"
127.0.0.1:6379[1]> hkeys user:1 1) "name" 2) "score" 127.0.0.1:6379[1]> hvals user:1 1) "test" 2) "90"
127.0.0.1:6379[1]> hlen user:1 (integer) 2
需要注意的是,散列类型无法获取所有存在的键值,也就是id,如果删除了中间某个id的话,只可以使用exist命令来判断key是否存在。
列表类型
基本操作
列表的基本操作命令都是以l开头的。
127.0.0.1:6379> lpush user test (integer) 1 127.0.0.1:6379> rpush user test1 (integer) 2 127.0.0.1:6379> lpop user "test" 127.0.0.1:6379> rpop user "test1" 127.0.0.1:6379>
127.0.0.1:6379> llen user (integer) 0 127.0.0.1:6379> lpush user test (integer) 1 127.0.0.1:6379> llen user (integer) 1
127.0.0.1:6379> lrange user 0 3 1) "test" 2) "test1" 3) "test2" 4) "test3" 127.0.0.1:6379> lrange user 0 2 1) "test" 2) "test1" 3) "test2"
lrem key count value @count 为删除个数,大于0的话从左边开始,小于0的话从右边开始 @value 要删除的值
我们可以把数据的id存储在列表中,当某一行数据被删除时候,只需要删除为该value为key即可,而查询数据的时候,需要先从列表中读取所有的id,再从散列表中读取数据。
127.0.0.1:6379> lrange user 0 -1 1) "test" 2) "test1" 3) "test2" 4) "test3" 127.0.0.1:6379> linsert user before test1 test0 (integer) 5 127.0.0.1:6379> linsert user after test1 test1.5 (integer) 6 127.0.0.1:6379> lrange user 0 -1 1) "test" 2) "test0" 3) "test1" 4) "test1.5" 5) "test2" 6) "test3"
rdroplpush source destination 从source列表的右侧弹出一个数据,添加到destination列表的左侧
集合类型
127.0.0.1:6379> sadd key 1 (integer) 1 127.0.0.1:6379> sadd key 2 (integer) 1 127.0.0.1:6379> sadd key 2 (integer) 0 127.0.0.1:6379> smembers key 1) "1" 2) "2" 127.0.0.1:6379> srem key 2 (integer) 1 127.0.0.1:6379> smembers key 1) "1"
127.0.0.1:6379> sismember key 1 (integer) 1 127.0.0.1:6379> sismember key 3 (integer) 0
sdiff key [key...] sinter key [key...] sunion key [key...]
127.0.0.1:6379> scard key (integer) 1
sdiffstore destination key [key...] sinterstore destination key[key...] sunionstore destination key[key...]
srandmember key [count]127.0.0.1:6379> srandmember key 3 1) "4" 2) "2" 3) "3"
有序集合类型 sorted set
基本操作
(1)zadd添加元素,并设置分数score
127.0.0.1:6379> zadd students 60 xiaoming (integer) 1 127.0.0.1:6379> zadd students 80 daxiong (integer) 1
127.0.0.1:6379> zscore students xiaoming "60"
127.0.0.1:6379> zrange students 0 1 1) "xiaoming" 2) "daxiong"
127.0.0.1:6379> zrangebyscore students 0 70 1) "xiaoming" 127.0.0.1:6379> zrangebyscore students 0 100 1) "xiaoming" 2) "daxiong"
获取从0开始的前2个数据 127.0.0.1:6379> zrangebyscore students 0 100 limit 0 2 1) "xiaoming" 2) "daxiong" 获取从1开始的前2个数据 127.0.0.1:6379> zrangebyscore students 0 100 limit 1 2 1) "daxiong"
127.0.0.1:6379> zincrby students 5 xiaoming "65" 127.0.0.1:6379> zincrby students -5 xiaoming "60"
127.0.0.1:6379> zcard students (integer) 2
zcount key min max127.0.0.1:6379> zcount students 0 70 (integer) 1 127.0.0.1:6379> zcount students 0 90 (integer) 2
zrem key [key...]
zremrangebyrank key start stop
zremrangebyscore key min max
127.0.0.1:6379> zrank students xiaoming (integer) 0
参考
redis入门指南
http://redis.readthedocs.org/en/latest/
转载于:https://www.cnblogs.com/coder2012/p/4391273.html
redis(一) 安装以及基本数据类型操作相关推荐
- Redis:安装、配置、操作和简单代码实例(C语言Client端)[转]
我转的地址: http://blog.csdn.net/hj19870806/article/details/8724907 听说游戏的用的比较多,所以了解下. --以下为转载内容 Redis是一个开 ...
- linux下清理redis缓存文件夹,redis的安装和清理缓存操作
Redis的脚本安装 参考文章: 第一步 编译redis 第二步 拷贝redis执行文件,修改配置文件,并启动 批量关闭redis端口 8001到8009 批量启动redis端口 8001到8009 ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)...
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- redis安装和基本数据类型
1. 安装 1.1 安装包 从官网下载安装包本文下载的是最新的7.0.4版本,linux为centos7 地址:https://github.com/redis/redis/archive/7.0.4 ...
- 项目1在线交流平台-4. 使用radis高性能储存方案-1.redis入门-特点、安装与支持数据类型
文章目录 1.为何使用redis 1.1 NoSQL NoSQL数据库特点 常见NoSQL数据库 1.2 什么是redis,有何特点 1.3 为何选用redis 2. redis的安装与使用 2.1 ...
- Redis缓存的安装及基本数据类型命令的使用
Redis基础 Redis 是一个开源的.遵循 BSD 协议的.基于内存的而且目前比较流行的键值数据库(key-value database),是一个非关系型数据库, redis 提供将内存通过网 ...
- NoSQL概述-Redis安装-常用五大数据类型-概述Bitmaps,HyperLogLog,Geospatial和redis.conf 基本解析
NoSQL 概述 NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL",泛指 非关系型的数据库. NoSQL不依赖业务逻辑方式存储,而以简单的key-valu ...
- NOSQL——redis的安装,配置与简单操作
内容预知 1.缓存的相关知识 1.1 缓存的概念 1.2 系统缓存 1.3 缓存保存位置及分层结构 DNS缓存 应用层缓存 数据层缓存 硬件缓存 2.关系型数据与非关系型数据库 2.1 关系型数据库 ...
- redis取mysql数据类型_redis数据类型操作
redis数据类型操作 一.value exists key:测试指定的key是否存在,1表示存在,0表示不存在 del key1 key2 ...keyN: 删除指定的key type key: 返 ...
最新文章
- c# winform 关于给静态全局变量赋值的问题
- 关于变量作用域的一点整理
- 饿了么风神登录_海底捞首度登陆第三方外卖!联手饿了么全国配送“小火锅”...
- CCKS 2018 | 工业界论坛报告简介
- java过时_Java 语言的几个缺陷之四: 过时的 JavaBean
- 使用Maven管理Eclipse Java项目
- 华为云开天aPaaS 上线,服务千万开发者,使能行业场景化创新
- jqueryForm 异步上传图片文件
- 微积分知识总览(1)——微积分准备知识
- 【Axure图标库】单线形图标元件库 细线矢量图标1000+
- 如何将UCI数据集转换成Matlab可用格式
- 通达信标记符号_史上最全的通达信软件中常见的一些字母/字符标识的含义(图解)...
- 射频芯片设计EM仿真(二)--对比EM仿真和schmetic仿真
- php富文本防注入_HTML Purifier,PHP中过滤富文本防止XSS攻击
- 五环电阻和四环电阻的区别是什么
- RHCE 第八次作业
- UI自动化偷懒必备:AirTest封装好ADB命令
- 什么是量化交易-量化交易demo
- 顺丰丰桥接口开发-java(订单取消接口)
- Idea 2020.1如何改变JetBrains Runtime(jbr)
热门文章
- android地图定位
- JQuery 1.32 DatePicker 增强版
- 心情不能平静,慢慢的调节
- 震精~python运算符还能这么玩~到底这么做到的?神级程序员解密!
- androidwakelock_Android音频播放时wakelock的实现
- android 联系人编辑界面,android – 以编程方式编辑联系人的姓名/电话号码
- 常用构建数据科学应用程序的七个Python库
- 牛客练习赛32 -- Xor Path
- 聚类分析在用户行为中的实例_序列模式挖掘在用户行为分析中的应用
- 洛谷 P4463 [集训队互测 2012] calc(拉格朗日插值优化DP)